2016-10-06 5 views
3

私は設定した高度なカスタムフィールド番号にアクセスできるように、私はWooCommerceカートの内容から投稿IDを取得しようとしています。私はポスト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

私は少しあなたのコードを変更した、そして今、あなたは正しくアイテム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のための配列にデータを格納'service_charge'の対応valuekeyに格納され

関連する問題