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

我添加了代码以在WooCommerce页面上显示"View Product Sample"按钮。该按钮功能正常;但是,我希望该按钮仅针对某一类别显示。我们的类别是"电子课程"

以下是我用于该按钮的代码:

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>';
}

感谢您能提供的任何帮助。

WordPress

您可以使用has_term()推荐答案函数(您必须在其中定义您的产品类别)来完成此操作。

您可以这样使用优先级高于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>';
    }
}

代码位于活动子主题(或主题)的函数.php文件或任何插件文件中。

已测试并正常工作。

相关文章