【问题标题】:Filter products by category on Woocommerce [closed]在 Woocommerce 上按类别过滤产品 [关闭]
【发布时间】:2020-07-01 13:12:20
【问题描述】:

我想过滤衬衫类别的所有产品以在所有衬衫上添加自定义字段。因为我不想在其余产品中添加该自定义字段。所以我希望自定义字段在产品页面、购物车和结帐时可见。

【问题讨论】:

    标签: woocommerce filter field product


    【解决方案1】:

    您可以使用以下过滤器来过滤购物车和结帐上的商品名称:woocommerce_after_cart_item_name

    要向您的产品页面添加一些内容,您可以从多种操作中进行选择以进行挂钩。这是visual overview。

    在以下示例中,我选择在产品页面的“添加到购物车”表单之前添加一些内容。

    add_action( 'woocommerce_before_add_to_cart_form', 'product_page_show_field_based_on_category', 10 ); 
    function product_page_show_field_based_on_category() {
        global $product;
        if ( has_cat( $product->get_category_ids() ) ) {
            echo "<p>Has category Shirt</p>";
        } 
    }
    
    add_filter( 'woocommerce_cart_item_name', 'checkout_and_cart_show_field_based_on_category', 10, 3 );
    function checkout_and_cart_show_field_based_on_category( $product_name, $cart_item, $cart_item_key ) {
        if ( has_cat( $cart_item['data']->get_category_ids() ) ) {
            $product_name .= "<p>Has category Shirt</p>";
        }
        return $product_name;
    }
    
    function has_cat( $cat_ids ) {
        $cat_id = 1; //set your shirt category id here
        return in_array( $cat_id, $cat_ids) ? true : false;
    }
    

    过滤器和操作都使用一个小的辅助函数来检查类别 ID。

    【讨论】:

    • 我不能投票,我是新人。谢谢您的回答。然后我可以使用:if($product->get_categories("shirt")){}
    • 您不必这样做。 has_cat() 函数将检查您的产品是否属于“衬衫”类别。只需在 has_cat() 函数的第一行设置衬衫类别 ID。 Click here 获取有关查找类别 ID 的帮助。如果这个答案对你有用,你可以mark it as accepted。提前谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多