2016-04-06 5 views
1

こんにちは、私はmy-account.phpを編集しようとしていると私はこのようなwc_get_template()form-edit-address.phpを呼んでいる:

<?php wc_get_template('myaccount/form-edit-address.php'); ?>

しかし、私はこのエラーを取得しています:

Notice: Undefined variable: address in .../woocommerce/myaccount/form-edit-address.php on line 42

私はこの行を追加することを修正しようとしました:

$address = WC()->countries->get_address_fields();

form-edit-address.phpファイル。

しかし、この$address変数には、フィールドの名前だけが'value'ではないため、これは機能しません。

このURLを使用してform-edit-address.phpに直接アクセスすると、http://192.168.1.15/e-commerce/my-account/edit-address/billing/の変数$addressに必要なすべての情報が表示されます。

入力されたフォームを生成するために必要なすべてのデータを取得するにはどうすればよいですか?

ありがとうございます!

答えて

1

form-edit-address.phpは、エンドポイントURL "edit-address"にアクセスするときに呼び出されます。
すなわち「www.example.com/my-account/edit-address/」です。どのエンドポイントURLファイルが親ページURL、つまり「my-account」から渡されたデータを継承するか。 したがって、エンドポイントURLファイルを呼び出す場合は機能しません。あなたはmy-address.phpにチェックするとところで

は、$address変数は、この配列は、「フォーム編集address.php」で使用されている49

$address = apply_filters('woocommerce_my_account_my_address_formatted_address', array(
        'first_name' => get_user_meta($customer_id, $name . '_first_name', true), 
        'last_name' => get_user_meta($customer_id, $name . '_last_name', true), 
        'company'  => get_user_meta($customer_id, $name . '_company', true), 
        'address_1' => get_user_meta($customer_id, $name . '_address_1', true), 
        'address_2' => get_user_meta($customer_id, $name . '_address_2', true), 
        'city'  => get_user_meta($customer_id, $name . '_city', true), 
        'state'  => get_user_meta($customer_id, $name . '_state', true), 
        'postcode' => get_user_meta($customer_id, $name . '_postcode', true), 
        'country'  => get_user_meta($customer_id, $name . '_country', true) 
       ), $customer_id, $name); 

行番号で定義されています。

"form-edit-address.php"をテンプレートファイルとして呼び出す場合は、上記のコードをforeachループの直前に追加してみてください。

これが役に立ちます。

+0

この変数 '' $ address''は違うと思います。 '' my-address.php'''ファイルからの '' $ address'''はフォームを生成するためには使われません。単に情報を出力するために '' print_r($ address) ''を使いました。 ''を使ってデータ構造をチェックし、同じではありません。 – carmolim

+0

フォームの生成と情報の印刷のみには使用されません。しかし、ロードするフォームを編集するために同じ情報が渡されます。上記のコード( 'my-address.php')の' $ name'変数は、それが '請求'か '配送'かを決定します。上記のコードでは、変数 '$ name'を' $ load_address'で変更してみてください。私はそれが問題を解決すべきだと思う。 – zipkundan

+0

'' '$ name'''を' '$ load_address'''に変更するだけで、別のデータ、出荷または課金が得られますが、データ構造は同じで元の' 'form- edit-address.php'''ファイル。私がエンドポイントにアクセスしたときに同じ '' '$ address'''変数を使用することは可能ですか? – carmolim

関連する問題