微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Woocommerce - 如何根据 LOOP 之外的条件显示/隐藏每个 FOREACH 项目

如何解决Woocommerce - 如何根据 LOOP 之外的条件显示/隐藏每个 FOREACH 项目

所以我有一个从 Woocommerce 购物车中提取信息的脚本。

发生了什么:

  • 如果 wp_cache_get 成功,脚本将初始化。
  • 使用一个函数创建变量,该函数告诉我购物车中有多少来自特定类别的商品。
  • 我创建了一个数组,其中给出了我的商品名称(一箱啤酒,按瓶数)和价值,该价值是从我的 cat_cart_count() 类别函数提取的。
  • FOREACH 循环开始,如果 item 少于 4,它将创建一条消息。如果超过 4 个,则发送另一条消息。

但事情就是这样。如果 $count 导致循环中的项目超过 1 个,我需要能够更改该消息。

原因是,如果它们有 3 个符合条件的类别 ( $pack_count < 4 ),我不想将相同的消息重复 3 次以上。

如果 $count(循环外,循环内的项目数)大于 2,我希望能够更改消息...例如:

if ( $count >= 2 ) {
    echo 'Oh wow,you have $pack_count in your cart. That is a lot of beer.';
}

任何其他消息都将被隐藏。这基本上是一种根据购物车中的商品及其数量在迷你购物车内显示许多不同消息的方法

我这样做对吗?我怎样才能做到这一点?

   // define the woocommerce_after_mini_cart callback 
   function action_woocommerce_after_mini_cart() {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
    return;

    $initialize = wp_cache_get( 'pack_building' );

    if ( $initialize ) {

    $the_six = cat_cart_count( "6" );
    $the_12 = cat_cart_count( "12" );
    $the_24 = cat_cart_count( "24" );

    $first_name = get_user_Meta( get_current_user_id(),'billing_first_name',true );

    $packs;
    $packs["6-pack"] = $the_six;
    $packs["12-pack"] = $the_12;
    $packs["24-pack"] = $the_24;

    $count = 0;

    foreach( $packs as $name => $pack_count ){

        if ( $pack_count ) {

            $count_diff = abs( $pack_count - 4 );

            $count = $count + 1;

            //if less than 4 packs
            if ( $pack_count < 4 ) {
                $msg = "You have $pack_count - 7 Boxes of $name";
                echo $msg;
            }
            //if more than 4 packs
            else {
                $msg = "You have over 4 - $pack_count of $name . You're saving big time!";
                echo $msg;
            }
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。