所以我在我的函数文件中有这个-它定义了不符合免费送货条件的产品。一切正常。
//functions.php
function my_free_shipping( $is_available ) {
global $woocommerce;
// set the product ids that are $product_notfree_ship
$product_notfree_ship = array( \'1\', \'2\', \'3\', \'4\', \'5\' );
// get cart contents
$cart_items = $woocommerce->cart->get_cart();
// loop through the items looking for one in the ineligible array
foreach ( $cart_items as $key => $item ) {
if( in_array( $item[\'product_id\'], $product_notfree_ship ) ) {
return false;
}
}
// nothing found return the default value
return $is_available;
}
add_filter( \'woocommerce_shipping_free_shipping_is_available\', \'my_free_shipping\', 20 );
我输入到阵列中的所有产品ID
$product_notfree_ship
被拒绝免费送货。
现在,我想打电话给产品页面上的产品ID,查看他们是否应该收到“免费送货”消息或“附加运费”
所以在我的主题/woocommerce/单一产品/产品形象中。php(我想在主img之后)文件
//theme/woocommerce/single-product/template.php
$product_notfree_ship = array( \'1\', \'2\', \'3\', \'4\', \'5\' );
// this is commented because it didn\'t work,
// global $product_notfree_ship;
if ( is_single($product_notfree_ship) ) {
echo \'Additional Shipping Charges Apply\';
} else {
echo \'FREE SHIPPING on This Product\';
}
现在,这是可行的,如果需要将新产品id添加到“非免费配送产品阵列”,那么必须同时编辑这两个阵列会让人觉得很愚蠢
所以根据答案here
我想如果打电话global $product_notfree_ship;
在if
正确的代码将运行,但它没有运行。
这是因为我在使用is_single()
? 这是因为它是一个数组,需要以不同的方式调用吗?
非常感谢您的帮助。非常感谢。