我的购物车有三种方式:标准配送(0-10kg)、标准配送(11-20kg)和次日配送(0-20kg),我的问题是,当我将冷冻食品配送类别的产品运送到购物车时,配送方式应该是次日配送,如果购物车上现在有配送类别,则只有标准配送,我的问题是,当一个添加了装运类别的产品和一个没有装运类别的产品时,它将不符合我所做的条件。
add_filter( 'woocommerce_package_rates', 'custom_hide_shipping_methods', 10, 2 );
function custom_hide_shipping_methods( $rates, $package ) {
foreach( WC()->cart->get_cart() as $cart_item ) {
$product = $cart_item[ 'data' ]; // The WC_Product object
if( $product->get_shipping_class_id() == 149 ) { // <== ID OF MY SHIPPING_CLASS
unset( $rates['shipping_by_rules:16'] ); // standard delivery
wc_add_notice( sprintf( __( '1', 'woocommerce' ), $weight ), 'error' );
}else if($product->get_shipping_class_id() == NULL){
unset( $rates['shipping_by_rules:15'] ); // next day delivery
wc_add_notice( sprintf( __( '2', 'woocommerce' ), $weight ), 'error' );
}else if($product->get_shipping_class_id() != || $product->get_shipping_class_id() == 149){
unset( $rates['shipping_by_rules:16'] ); // standard delivery
wc_add_notice( sprintf( __( '3', 'woocommerce' ), $weight ), 'error' );
}
break; // we stop the loop
}
return $rates;
}
更新2:你的代码中有很多错误…
您的代码中缺少装运方法,因为您只有2个:
“按规则发货:16”
==但标准交货(11-20公斤)如何
您应该尝试以下方法:
add_filter( 'woocommerce_package_rates', 'custom_hide_shipping_methods', 20, 2 );
function custom_hide_shipping_methods( $rates, $package ) {
$targeted_class_id = 149; // <== ID OF MY SHIPPING_CLASS
$has_class = $has_no_class = false;
// Loop through cart items
foreach( WC()->cart->get_cart() as $cart_item ) {
$shipping_class = $cart_item['data']->get_shipping_class_id();
# $weight = $cart_item['data']->get_weight();
if( $shipping_class == $targeted_class_id )
$has_class = true;
elseif( empty( $shipping_class ) )
$has_no_class = true;
}
// Unseting shipping methods
if( $has_class )
{ // CASE 1 and 3
unset( $rates['shipping_by_rules:16'] ); // standard delivery
# wc_add_notice( sprintf( __( '1 | %s', 'woocommerce' ), $weight ), 'error' );
}
elseif( ! $has_class && $has_no_class )
{ // CASE 2
unset( $rates['shipping_by_rules:15'] ); // next day delivery
# wc_add_notice( sprintf( __( '2 | %s', 'woocommerce' ), $weight ), 'error' );
}
elseif( $has_class && $has_no_class ) // ==> Optional (You may not neeed it)
{ // CASE 3
unset( $rates['shipping_by_rules:16'] ); // standard delivery
# wc_add_notice( sprintf( __( '3 | %s', 'woocommerce' ), $weight ), 'error' );
}
return $rates;
}
代码进入函数。活动子主题(或活动主题)的php文件。
它应该有效。
输入一个语句后按回车键,MATLAB自动在屏幕上显示结果,但如果该行命令是以";"结尾,则MATLAB仍会进行运算赋值,但不显示任何输出结果.这一点在生成复杂矩阵时特别有用.例如: A = magic(100);
我实现了动态的列可见性来隐藏/显示列,例如和来显示/隐藏列5。我也有一个的回调,比方说,它用第5列中的文本制作了一个html按钮。 目前在中,我检查,如果为真,则继续执行
问题内容: 我知道命令行界面(例如Git等)能够隐藏用户的输入(对于密码有用)。有没有办法用Java编程地做到这一点?我正在从用户那里输入密码,我希望他们的输入在该特定行(而不是所有用户)上被“隐藏”。这是我的代码(尽管我怀疑这会有所帮助…) 问题答案: 尝试。不过,您至少必须运行Java 6。 请注意,这不适用于Eclipse控制台。您必须从 真实的 console / shell / term
我想使用Selenium ChromeDriver打开Chrome浏览器,而不让Chrome消息输出到控制台。 我想隐藏输出消息"DevTools监听..." 但这一信息仍在显现。如何隐藏输出消息“DevTools侦听…”用Python?
我有一个代码与许多评论,我如何可以隐藏这些,但没有删除,我需要他们之后。
问题内容: 是否可以将某些字段排除在json字符串中? 这是一些伪代码 我想排除privateProperty1和privateproperty2出现在json字符串中 所以我想,我可以使用stringify replacer函数 并在串 但是在jsonString中,我仍然将其视为 我想在其中没有privateproperties的字符串。 问题答案: 在Mozilla的文档说回报(而不是):
对于 被选中的国家 ,只显示 输入线 或者 输出线 只显示输入线 只显示输出线 controller.showInOnly(true); controller.showInOnly(false); controller.showOutOnly(true); controller.showOutOnly(false);
我们的商业产品种类繁多,其中一些不是我们自己的,也不是我们自己供应的。我正在尝试设置一个功能,如果购物车中的产品属于“额外”运输类别,则禁用免费运输。 如果有任何其他产品不属于运输类别“额外”,免费送货仍然适用。因此,如果购物车中有5种产品都属于运输类别“额外”,而没有其他产品,将收取5美元的费用。如果有任何其他产品不在该运输类别,免费送货再次适用。 我在互联网上搜寻解决方案,到目前为止,我得到的