在购物车和结帐页面

时间:2017-01-26 21:11:21

标签: php wordpress woocommerce checkout categories

在WooCommerce中,我正在尝试为购物车项目中的特定类别添加产品简短说明。

我发现this code将产品简短说明添加到购物车中的所有产品中,但我无法弄清楚如何将其缩小到仅显示在特定产品上:

add_filter('woocommerce_get_item_data', 'wc_checkout_description_so_27900033', 10, 2);

function wc_checkout_description_so_27900033($other_data, $cart_item) {
    $post_data = get_post($cart_item['product_id']);
    echo $post_data - > post_excerpt;
    return $other_data;
}

如何使此代码仅显示已定义产品类别的简短描述?

由于

1 个答案:

答案 0 :(得分:1)

我已经改变并实现了一点你的代码。然后,要定位产品类别,您应该使用has_term()条件WordPress功能。然后你必须在你的函数中定义你的类别ID,slug或名称​​(或一组值) ......

所以这是定义的产品类别的功能代码:

add_filter('woocommerce_get_item_data', 'filter_woocommerce_get_item_data', 10, 2);
function filter_woocommerce_get_item_data( $item_data, $cart_item ) {

    // Define HERE your Category ID, Slug or Name (or an array of values)
    $category = 'Clothing'; // Slug category

    $item_id = $cart_item['product_id']; // The Item Id
    $taxonomy = 'product_cat'; // Taxonomy for Product categories

    // Product Category condition Below
    if( has_term( $category, $taxonomy, $item_id ) ):

        $product = wc_get_product($item_id); // Getting an instance of the Product object
        $description = $product->post->post_content; // Product Description
        $short_description = $product->post->post_excerpt; // Product Short Description

        // Display Short description for this product category
        echo '<span class="item-description">'. $short_description.'<span>';

    endif;

    // Return the $item data
    return $item_data;
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

代码经过测试并有效。

我在span标记中嵌入了简短描述。这样,您可以使用一些自定义CSS规则来定位它,以个性化显示。