在WooCommerce中修改简单的产品链接

时间:2019-02-28 17:57:56

标签: php wordpress woocommerce product cart

我在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 :(得分:1)

我已经修改了编码。

  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中。

将产品添加到购物车后,如果我尝试再次添加产品,这次它将把我发送到订阅页面(应该从头开始)。