我添加了代码以显示"查看产品示例"在woocommerce页面上的按钮。按钮功能正常;但我希望按钮只显示某个类别。我们所拥有的类别是"电子课程"
以下是我用于按钮的代码:
add_action('woocommerce_after_add_to_cart_button','custom_button_by_categories');
function custom_button_by_categories() {
global $post;
$demoslug = $post->post_name;
$demourl = get_bloginfo('url').'/courses/'.$demoslug.'/';
$demotitle = esc_attr($post->post_title);
echo '<a href="'.$demourl.'" target="_blank" button type="submit" class="button sample">View Product Sample</a>';
}
感谢您提供任何帮助。
答案 0 :(得分:1)
您可以使用has_term()
Wordpress功能(您必须定义产品类别)来执行此操作。
您可以使用优先级高于30的 woocommerce_simple_add_to_cart
:
add_action( 'woocommerce_simple_add_to_cart', function(){
global $product, $post;
// Set HERE your product category (ID, name or slug)
if ( has_term( 'e-courses', 'product_cat', $post->ID ) ){
$demourl = get_bloginfo('url').'/courses/'.esc_attr($post->post_name).'/';
$demotitle = esc_attr($post->post_title);
echo '<a href="'.$demourl.'" target="_blank" button type="submit" class="button sample">View Product Sample</a>';
}
}, 31 );
或者也使用你的钩子:
add_action('woocommerce_after_add_to_cart_button','custom_button_by_categories');
function custom_button_by_categories() {
// Set HERE your product category (ID, name or slug)
if ( has_term( 'e-courses', 'product_cat', $post->ID ) ){
global $post;
$demoslug = $post->post_name;
$demourl = get_bloginfo('url').'/courses/'.$demoslug.'/';
$demotitle = esc_attr($post->post_title);
echo '<a href="'.$demourl.'" target="_blank" class="button sample">View Product Sample</a>';
}
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
经过测试和工作。