我正在尝试从WooCommerce购物车内容中获取帖子ID,以便我可以访问我设置的高级自定义字段编号。我无法仅找到无效的产品ID值的帖子ID值。
这是我的代码:
add_action('woocommerce_cart_calculate_fees','woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$service_charge =0;
$cart_contents =($woocommerce->cart->cart_contents);
foreach($cart_contents as $cart_contents =>$values) {
$post_values = $values['data']->post;
$post_id = $post_values->ID;
$value = get_field( 'service_charge', $post_id );
}
如何获取帖子ID?
由于
答案 0 :(得分:0)
我已经更改了一些代码,现在您将正确使用项目ID以用于ACF插件 get_field(
)功能。
这是代码:
add_action('woocommerce_cart_calculate_fees','woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$service_charge = 0;
// As you can have multiple items in cart we will save all values in an indexed array.
$service_charge_values_array = array();
foreach(WC()->cart->cart_contents as $item) {
$item_id = $item['data']->id;
// Each stored value has a corresponding key that is the item ID
$service_charge_values_array[$item_id] = get_field( 'service_charge', $item_id );
}
// . . .
}
代码进入活动子主题(或主题)的function.php文件或任何插件文件中。
这是经过测试和运作的。
<强>更新强>
由于您的购物车中有多个商品,我已稍微更改了代码,现在我将数据存储在一个数组中,其中每个
item ID
都存储在key
,value
'service_charge'
。