我想删除Shop Archive页面上的默认/?add-to-cart =动画按钮。简单产品的默认模式在显示勾号并提供"查看购物车"之前单击按钮后显示一个微调器。选项链接。 (见这里:https://snag.gy/ZreQid.jpg)
我希望简单的产品“添加到购物车”按钮以与变量产品相同的方式重定向到产品页面。 (即我希望客户在点击按钮后查看产品页面,然后我将更改"添加到购物车"标签到"查看产品"通过Booster for Woocommerce插件)。
所以,我在thread上找到了这段代码:
/*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) . '"]VIEW PRODUCT[/button]');
}
第一步始终如一。第二步在某些时候有效。例如,在一个站点上,第2步可以实现魅力。在第二个站点(具有相同主题,在同一主机等处),按钮显示如下:
[按钮链接=&#34; https://example.com/product/product-name/"]查看产品[/按钮]
即。按钮没有显示;此原始代码正在显示,无法点击。见这里:https://snag.gy/FxEPWh.jpg
我希望我已经正确解释了它。
任何人都可以帮忙解释为什么上述代码在不同的网站上不能一致地工作吗?有更简单的方法吗?
答案 0 :(得分:0)
这是解决方案
add_filter('woocommerce_loop_add_to_cart_link','change_simple_shop_add_to_cart',10,2);
function change_simple_shop_add_to_cart( $html, $product ){
if( $product->is_type('simple')) {
$html = sprintf( '<a rel="nofollow" href="%s" data-product_id="%s" class="button">%s</a>',
esc_url( get_the_permalink() ),
esc_attr( $product->get_id() ),
esc_html( __( 'View Product', 'woocommerce' ) )
);
}
return $html;
}