作为我的自定义插件(基于woocommerce)开发的一部分,我已将作者分配给产品并愿意隐藏产品作者的“添加到购物车”按钮,这样我就可以限制作者购买他们自己的产品。
为此,我尝试了以下代码,但我无法隐藏作者的添加到购物车按钮。
add_action('after_setup_theme','user_filter_addtocart') ;
function user_filter_addtocart(){
$user_id = get_current_user_id();
$author_id = get_post_field('post_author', get_the_ID());
if(get_current_user_id() === $author_id){
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30, 3 );
}
}
答案 0 :(得分:0)
您可以试试这个,如果您使用的是默认商店和单个产品页面,那么如果您对这些页面使用自定义模板,那么请确保您在自定义模板中正确使用默认挂钩和过滤器。< / p>
/* remove add-to-cart from shop page for product author */
add_action('woocommerce_after_shop_loop_item_title','user_filter_addtocart_for_shop_page') ;
function user_filter_addtocart_for_shop_page(){
$user_id = get_current_user_id();
$author_id = get_post_field('post_author', get_the_ID());
if($user_id == $author_id){
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
}
}
/* remove add-to-cart from single product page for product author */
add_action('woocommerce_before_single_product_summary','user_filter_addtocart_for_single_product_page') ;
function user_filter_addtocart_for_single_product_page(){
$user_id = get_current_user_id();
$author_id = get_post_field('post_author', get_the_ID());
if($user_id == $author_id){
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
}