从购物车内容获取帖子ID

时间:2016-10-06 22:21:44

标签: php wordpress woocommerce cart product

我正在尝试从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?

由于

1 个答案:

答案 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'