Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Woocommerce单一产品页面按钮仅适用于特定类别_Php_Wordpress_Woocommerce_Categories_Product - Fatal编程技术网

Php Woocommerce单一产品页面按钮仅适用于特定类别

Php Woocommerce单一产品页面按钮仅适用于特定类别,php,wordpress,woocommerce,categories,product,Php,Wordpress,Woocommerce,Categories,Product,我添加了代码以在woocommerce页面上显示“查看产品示例”按钮。按钮功能正常;但是,我希望按钮只显示特定类别。我们的类别是“电子课程” 以下是我用于按钮的代码: add_action('woocommerce_after_add_to_cart_button','custom_button_by_categories'); function custom_button_by_categories() { global $post; $demoslug = $post->post

我添加了代码以在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>';
}
add_action('woocommerce_后添加_到_cart_按钮','custom_按钮按_类别');
功能自定义按钮按类别设置(){
全球$员额;
$demoslug=$post->post\U名称;
$demourl=get_bloginfo('url')。/courses/'.$demoslug./';
$demotitle=esc\u attr($post->post\u title);
回声';
}

感谢您提供的帮助。

您可以使用
has_term()
Wordpress函数(您必须在其中定义产品类别)来完成此操作

您可以通过以下方式使用优先级高于30的
woocommerce\u simple\u add\u to\u 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_操作('woocommerce_simple_add_to_cart',函数(){
全球$product$post;
//在此设置您的产品类别(ID、名称或slug)
如果(有术语('e-courses','product'u cat',$post->ID)){
$demourl=get_bloginfo('url')。/courses/'.esc_attr($post->post_name)。'/';
$demotitle=esc\u attr($post->post\u title);
回声';
}
}, 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>';
    }
}
add_action('woocommerce_后添加_到_cart_按钮','custom_按钮按_类别');
功能自定义按钮按类别设置(){
//在此设置您的产品类别(ID、名称或slug)
如果(有术语('e-courses','product'u cat',$post->ID)){
全球$员额;
$demoslug=$post->post\U名称;
$demourl=get_bloginfo('url')。/courses/'.$demoslug./';
$demotitle=esc\u attr($post->post\u title);
回声';
}
}
代码位于活动子主题(或主题)的function.php文件或任何插件文件中


经过测试,效果良好。

Loic感谢您的帮助。你建议的代码运行得很好。