Изменить простую ссылку на продукт в WooCommerce - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть интернет-магазин с WooCommerce, где пользователь, который не зарегистрирован как «Подписанный клиент» и пытается добавить товар в корзину, перенаправляется на страницу для подписки.

В случаеуниверсальный магазин, где появляются все продукты, он прекрасно работает с этим кодом:

add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_loop_add_to_cart_button', 30, 2 );
function replace_loop_add_to_cart_button( $button, $product  ) {
  if ( !is_user_logged_in() || !current_user_can('tienda') ){
    if( $product->is_type( 'simple' ) ){
        $button_text = __( "Debes suscribirte", "woocommerce" );
        $button = __('<a class="button" href="https://glancingeye.com/modelado-3d/#suscripcion-modelado">' . $button_text . '</a>', "woocommerce");
    }}

    return $button;
}

Но, оказавшись внутри продукта, я не смогу добиться того, чтобы, если пользователь не зарегистрирован, он был перенаправлен на страницу подписки.

До сих пор я пытался с этим сценарием, я изменил текст кнопки, но не ссылку.Вот код этой стороны:

if ( !is_user_logged_in() || !current_user_can('tienda') ){
  add_filter( 'woocommerce_add_to_cart_form_action', 'boton_single' );
function boton_single( $product_permalink ){
    // filter...
 return _e('<a class="button" href="https://glancingeye.com/modelado-3d/#suscripcion-modelado">' . $button_text . '</a>', "woocommerce");

    }   
  add_filter( 'woocommerce_product_single_add_to_cart_text', 'texto_boton_single' );
function texto_boton_single() {
        return _e( 'Debes suscribirte', 'boton_suscribete' );

    }
}

Что я делаю не так?

1 Ответ

0 голосов
/ 28 февраля 2019

Я внес изменения в кодировку.

  add_filter( 'woocommerce_add_to_cart_form_action', 'boton_single' );
if ( !is_user_logged_in() || !current_user_can('tienda') ){

function boton_single( $product_permalink ){
	// filter...
 return _e( 'https://glancingeye.com/modelado-3d/#suscripcion-modelado', 'boton_suscribete' );
	return $product_permalink;
	}	
  add_filter( 'woocommerce_product_single_add_to_cart_text', 'texto_boton_single' );
function texto_boton_single() {
        return _e( 'Debes suscribirte', 'boton_suscribete' );
   
	}
}

и теперь, когда вы нажимаете «Добавить в корзину», система добавляет продукт в корзину (не я не зарегистрированный пользователь), но в URL, еслиURL появляется там, где я хочу, чтобы он перенаправлял.

Как только товар добавлен в корзину, если я пытаюсь добавить его снова, на этот раз он отправляет меня на страницу подписки (это следует сделать с самого начала).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...