在Woocommerce上按类别过滤产品

时间:2020-07-01 13:12:20

标签: woocommerce filter field product

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

1 个答案:

答案 0 :(得分:-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。