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

时间:2017-08-21 17:30:28

标签: 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_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>';
}

感谢您提供任何帮助。

1 个答案:

答案 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文件中,或者放在任何插件文件中。

经过测试和工作。