在Woocommerce商店页面中更改简单产品的“添加到购物车”按钮

时间:2018-03-01 09:04:48

标签: php jquery wordpress woocommerce product

我尝试添加一个jquery来更改html和链接,但是由于ajax_add_to_cart它没有真正起作用。

jQuery(document).ready(function($) {
    var url = $('li.product-type-simple .product-category').attr('href');
    $(this).find('.add-to-cart-button').attr('href', url).html('View Details');
});

当您在此页面中发现时,它会显示选择选项

我希望如此  它将显示为查看详细信息,并将重定向到产品页面。

但在 functions.php 中添加此功能会导致无法购买该产品:

add_filters( 'woocommerce_is_purchasable', false, $this );

我也添加了这个,但它没有用。

// added by Vahn
/*PUT THIS IN YOUR CHILD THEME FUNCTIONS FILE*/

/*STEP 1 - REMOVE ADD TO CART BUTTON ON PRODUCT ARCHIVE (SHOP) */

function remove_loop_button(){
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
}
add_action('init','remove_loop_button');



/*STEP 2 -ADD NEW BUTTON THAT LINKS TO PRODUCT PAGE FOR EACH PRODUCT */

add_action('woocommerce_after_shop_loop_item','replace_add_to_cart');
function replace_add_to_cart() {
global $product;
$link = $product->get_permalink();
echo do_shortcode('<br>[button link="' . esc_attr($link) . '"]Read more[/button]');
}

//end added

1 个答案:

答案 0 :(得分:3)

您应该尝试以下代码(如果需要,您可以在其中更改或自定义按钮)。但是如果你的主题已经在这上面进行了自定义,它就无法工作:

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( $product->is_type( 'simple' ) ){
        $button_text = __( "View product", "woocommerce" );
        $button = '<a class="button" href="' . $product->get_permalink() . '">' . $button_text . '</a>';
    }

    return $button;
}

代码放在活动子主题(或主题)的function.php文件中。

经过测试和工作。