显示包含添加到购物车的第一个产品的类别链接的自定义消息

时间:2016-09-23 23:42:43

标签: php wordpress woocommerce categories cart

在WooCommerce上,我想在购物车页面顶部显示一条自定义消息,其中包含添加到购物车的第一个产品的类别链接。

这是消息:

  

{LINK TO CATEGORY OF FIRST PRODUCT ADDED TO CART} 添加更多T恤并获得折扣!

我怎样才能做到这一点?有什么想法吗?

由于

1 个答案:

答案 0 :(得分:3)

这是一个自定义功能,它将在购物车页面上显示您的自定义消息,并将第一个产品的类别归档页面链接添加到购物车。
如果没有类别的产品被添加到购物车,则不显示任何内容。
您也可以选择在结帐页上显示它(取消注释最后一行)

以下是此代码:

function cart_custom_message() {
    if( !WC()->cart->is_empty ){

        //Iterating each item in the cart
        foreach ( WC()->cart->get_cart() as $item ) {

            // Get the product categories object of the current item
            $categories_obj = get_the_terms( $item['product_id'], 'product_cat' );
            if($categories_obj) break; // when an item has a product category, stops the loop
        }
        if($categories_obj) {
            //Iterating each category of the first item
            foreach ( $categories_obj as $category ) {
                break; // stop the loop to on the first category
            }
            $category_id = $category->term_id; // the category id
            $category_name = $category->name; // the category name
            $category_slug = $category->slug; // the category slug
            $category_url = get_term_link( $category_slug, 'product_cat' ); // the link to category archive pages

            // Your message (translatable)
            $message = __("Add more T-shirts from <a href='$category_url'><strong>$category_name</strong></a> category and get a discount!", "your_theme_domain");
            echo "<div class='woocommerce-info'>$message</div>";
        }
    }
}
// Display message on cart page
add_action('woocommerce_before_cart', 'cart_custom_message'); 
// Display message on checkout page (optionally, if needed, uncomment the line below) 
// add_action('woocommerce_before_checkout_form', 'cart_custom_message', 5); 

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

此代码经过测试且功能齐全。

参考文献: