我正在实施一个商店,只允许登录用户查看添加到购物车按钮。移除添加到购物车按钮从woocommerce中的简码
我已经成功地隐藏他们大多用下面的代码:
function thread_remove_loop_button(){
if(!is_user_logged_in()){
remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30);
remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10);
}
}
add_action('init','thread_remove_loop_button');
然而,仍然有新产品&畅销商品widget的若干表现。查看代码,我可以看到这些呼叫的简码
do_shortcode('[add_to_cart id="'.$product->id.'"]');
什么是修改这些的最佳途径,因此添加到购物车按钮只显示已登录的用户。显然在模板中,我可以做一些沿线
if(is_user_logged_in())
echo do_shortcode('[add_to_cart id="'.$product->id.'"]');
}
但它似乎应该有一个更好的办法?沿着钩子什么的?