У меня есть интернет-магазин с 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' );
}
}
Что я делаю не так?