如果这是一个愚蠢的问题,请事先原谅我。
所以,我目前正在检查WooCommerce购物车中的所有物品。
如果购物车中有一个产品属于“Practice”类别,而购物车中没有“Qualification”类别的产品,我想显示消息1
如果“练习”和“资格”类别都在购物车中,我想显示消息2。
现在,这是我的代码:
<?php
$category_checks = array();
// check each cart item for our category
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
$practice = false;
$qualifying = false;
if( has_term( 'practice', 'product_cat', $product->id ) && ! has_term( 'qualifying', 'product_cat', $product->id ) ) : ?>
<?php $practice = true; ?>
Upsell goes here (Message 1)
<?php elseif( has_term( 'practice', 'product_cat', $product->id ) && has_term( 'qualifying', 'product_cat', $product->id ) ) : ?>
<?php $qualifying = true; ?>
No need to upsell (Message 2)
<?php endif; ?>
<?php
array_push( $category_checks, $practice, $qualifying );
}
if ( ! in_array( false, $category_checks, true ) ) {
}
?>
我有两个产品各有一个类别,一个有“练习”类别,一个有“资格”类别。
当我将这两个产品添加到购物车并尝试此代码时,我会不断收到消息1,即使我说如果它没有(!)术语“合格”。
我做错了什么?
更新
在你的代码中有一些错误和错误(例如在你的代码$product-
对购物车项目使用
has_term()
时,始终对产品id参数使用$cart_item['product_id']
,但决不使用$cart_item['data']-
我重访了您的代码。尝试以下方法:
<?php
$taxonomy = 'product_cat';
$practice = false;
$qualifying = false;
// Loop through order items
foreach ( WC()->cart->get_cart() as $cart_item ) {
$product_id = $cart_item['product_id'];
if( has_term( 'practice', $taxonomy, $product_id ) )
$practice = true;
if( has_term( 'qualifying', $taxonomy, $product_id ) )
$qualifying = true;
}
if ( $practice && ! $qualifying )
echo '<p>Upsell goes here (Message 1)</p>';
elseif ( $practice && $qualifying )
echo '<p>No need to upsell (Message 2)</p>';
?>
它应该更好地按预期工作。
我目前在R中有一个数据框,看起来像这样 我用group_by将数据按动物分组。我想创建一个新的列V6,它采用列V4,将较低的值除以较高的值,如果该值小于0.5,则V6= A,ifelse则V6 = b..有没有办法在R中使用带条件语句的mutate函数?实际的数据框要大得多,所以我宁愿不用手动操作。这是我希望最终数据框的样子 这就是我开始做的 但我知道这是不对的。非常感谢。
我有一个接受NSE参数的函数。 假设我有一个tibble,其中有一列需要订购。我想创建一个函数,它可以根据函数参数中输入的名称对列名进行排序。但是,如果我不使用参数,我希望它不对列进行排序,因此我使用< code>column_name = NULL作为默认参数(或< code>column_name = NA) 创建于 2022-04-11 由 reprex 软件包 (v2.0.1) 然而,尽管
问题内容: 如何将sql查询写入hibernate条件? 问题答案: 想我找到了答案。您必须使用Projection.sqlProjection()而不是Projections.sum()。例:
我目前正在使用kotlin quarkus和mutiny构建一个反应式应用程序,作为反应式编程的新手,我想知道处理以下工作流的最佳方式是什么: 尝试在数据库中查找项目(dynamodb) 如果存在,则向调用者返回一个指示此的值 如果不存在,请调用保存服务 致电外部服务获取一些数据 使用来自外部服务的数据更新数据库中的项目 返回一个值,指示已创建对象 以下是我目前的代码: 此方法最终将由resten
问题内容: 如何将sql查询写入休眠条件? 问题答案: 认为我找到了答案。您必须使用Projection.sqlProjection()而不是Projections.sum()。例:
我在组件的列表中显示了一个项目数组。项目的属性之一是描述字段,其范围可以从一个单词到几个句子。 当描述太长,我想截断它,并显示一个按钮,将显示点击时的完整文本。是否截断和显示按钮的条件基于返回布尔值的函数: 然后我从组件的模板端使用这个函数,如下所示(ngFor的一小部分): 这里使用的CSS很简单: 目前,该行为非常偶然,我在控制台中收到错误: expressionchangedafterith