问题描述
我正在尝试在WooCommerce购物车中设置最大购买总额。 (背景:我想禁止在这种情况下使用100%优惠券的人在他们的购物车中添加更多产品。)
// Weitere Einkäufe verhindern
add_action( 'woocommerce_check_cart_items','cldws_set_max_total');
function cldws_set_max_total() {
// Only run in the Cart or Checkout pages
if( is_cart() || is_checkout() ) {
global $woocommerce;
// Set maximum cart total
$max_cart_total = 1;
// A maximum of 1 € is required before checking out.
$total = WC()->cart->totals;
// Compare values and add an error is Cart's total
if( $total >= $max_cart_total ) {
// display our error message
wc_add_notice( sprintf( '<strong>Bitte lege nicht mehr Stränge in den Warenkorb als du beim Crowdfunding bestellt hast.</strong> Die genaue Anzahl findest du in der E-Mail mit dem Gutscheincode. '),'error' );
}
}
}
这是它应该做的:
在检查它仅在购物车和结帐页面上运行并设置最大值后,总计金额为1欧元,我查询购物车的总计并将其与该最大值进行比较。如果总数大于最大值。允许的总数,则显示错误消息。
我怀疑我用“ totals”查询了错误的变量,但是应该是一个变量,即折扣后的购物车总价值。我也尝试过“ get_cart_total()”,但这没有帮助。 I've also looked at this,but don't get why replacing WC() for $woocommerce should help.
非常感谢您的帮助!
解决方法
结果替换
WC()->cart->get_cart_total();
使用
$woocommerce->cart->total;
实际上可以解决问题。但是我不明白为什么。 :-D