0

Woocommerce カート オブジェクトの 2 つの変数を更新したいと考えています。オブジェクト内の配列の構造を次のように確認できます。

echo 'Cart Dump: ' . var_dump($woocommerce->session->cart)

これは以下を返します:

array(1) { ["01822dd92bc31f60fdb64f0c3c5eb241"]=> array(9) { ["product_id"]=> int(616) ["variation_id"]=> string(0) "" ["variation"]=> string(0) "" ["quantity"]=> int(1) ["addons"]=> array(2) { [0]=> array(3) { ["name"]=> string(5) "Color" ["value"]=> string(13) "Black / Black" ["price"]=> string(0) "" } [1]=> array(3) { ["name"]=> string(8) "Warranty" ["value"]=> string(13) "12 Month Free" ["price"]=> string(0) "" } } ["line_total"]=> float(689) ["line_tax"]=> float(0) ["line_subtotal"]=> float(689) ["line_subtotal_tax"]=> float(0) } } Cart Dump: 

そのオブジェクト内に変数「値」と「価格」を設定できるようにしたいと考えています。

私の次のステップは、次の配列に足を踏み入れようとすることでした。

echo 'Cart Dump: ' . var_dump($woocommerce->session->cart[1])

しかし、ここではオブジェクト参照と配列参照を混在させていると思いますが、NULL になっています。オブジェクトの関数を作成したほうがよいことは理解できますが、設定したい変数にアクセスすることさえできない場合、どのようにアプローチするのが最善かわかりません。

よろしくお願いします。

4

2 に答える 2

0

これを試すことができます:

//search the key of the array
$cart = $woocommerce->session->cart;
//update values using the key of the array as key
$woocommerce->session->cart[key($cart)]['value'] = 'your value';
$woocommerce->session->cart[key($cart)]['price'] = 'your price';
于 2014-11-12T11:43:47.637 に答える
0

ここにはオブジェクトはありません。配列のキーが01822dd92bc31f60fdb64f0c3c5eb241整数ではなく文字列であることだけです1

したがって、を取得/設定するvalueには、次を使用します。

$woocommerce->session->cart["01822dd92bc31f60fdb64f0c3c5eb241"]["addons"][0]["value"]

キーがわからない場合、php のバージョンによっては、配列の最初の要素に到達するために一時変数が必要になる場合があります。

$temp = reset($woocommerce->session->cart);
$value = $temp["addons"][0]["value"];
于 2013-09-03T08:19:28.630 に答える