wordpressにてwoocomerceを使って、my-accountページに新規カスタムメニューを追加しています。
そのカスタムメニュー内にアカウント詳細(edit-account)ページのアカウント情報編集フォーム(最終的にはアカウント詳細のフォームとは別物にする予定です)を追加したいです。
下記コードでカスタムメニューの追加とform-edit-account.phpの内容をコピペして、アカウント情報編集フォームを表示しています。
表示自体はされているのですが、登録済みのアカウント情報の値が取得できていません(姓・名・表示名等)
該当コードを見てみるとUndefined variable '$user'.とあります。
form-edit-account.php内で$userを定義してる様子はないのですが、どこで定義しているのでしょうか?
php
1/** 2 * Query registration 3 */ 4function my_custom_query_vars($vars) 5{ 6 $vars[] = 'my-dosu-endpoint'; 7 return $vars; 8} 9add_filter('query_vars', 'my_custom_query_vars', 0); 10 11function my_custom_my_account_menu_items($items) 12{ 13 $items['my-dosu-endpoint'] = __('OOOO', 'woocommerce'); 14 return $items; 15} 16add_filter('woocommerce_account_menu_items', 'my_custom_my_account_menu_items'); 17 18function my_custom_endpoint_content() 19{ 20 defined('ABSPATH') || exit; 21 22 do_action('woocommerce_before_edit_account_form'); ?> 23 24 <form class="woocommerce-EditAccountForm edit-account" action="" method="post" <?php do_action('woocommerce_edit_account_form_tag'); ?>> 25 26 <?php do_action('woocommerce_edit_account_form_start'); ?> 27 28 <p class="woocommerce-form-row woocommerce-form-row--first form-row form-row-first"> 29 <label for="account_first_name"><?php esc_html_e('First name', 'woocommerce'); ?> <span class="required">*</span></label> 30 <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_first_name" id="account_first_name" autocomplete="given-name" value="<?php echo esc_attr($user->first_name); ?>" /> 31 </p> 32 <p class="woocommerce-form-row woocommerce-form-row--last form-row form-row-last"> 33 <label for="account_last_name"><?php esc_html_e('Last name', 'woocommerce'); ?> <span class="required">*</span></label> 34 <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_last_name" id="account_last_name" autocomplete="family-name" value="<?php echo esc_attr($user->last_name); ?>" /> 35 </p> 36 <div class="clear"></div> 37 38 <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide"> 39 <label for="account_display_name"><?php esc_html_e('Display name', 'woocommerce'); ?> <span class="required">*</span></label> 40 <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_display_name" id="account_display_name" value="<?php echo esc_attr($user->display_name); ?>" /> <span><em><?php esc_html_e('This will be how your name will be displayed in the account section and in reviews', 'woocommerce'); ?></em></span> 41 </p> 42 <div class="clear"></div> 43 44 <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide"> 45 <label for="account_email"><?php esc_html_e('Email address', 'woocommerce'); ?> <span class="required">*</span></label> 46 <input type="email" class="woocommerce-Input woocommerce-Input--email input-text" name="account_email" id="account_email" autocomplete="email" value="<?php echo esc_attr($user->user_email); ?>" /> 47 </p> 48 49 <fieldset> 50 <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide"> 51 <label for="password_current"><?php esc_html_e('Current password (leave blank to leave unchanged)', 'woocommerce'); ?></label> 52 <input type="password" class="woocommerce-Input woocommerce-Input--password input-text" name="password_current" id="password_current" autocomplete="off" /> 53 </p> 54 <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide"> 55 <label for="password_1"><?php esc_html_e('New password (leave blank to leave unchanged)', 'woocommerce'); ?></label> 56 <input type="password" class="woocommerce-Input woocommerce-Input--password input-text" name="password_1" id="password_1" autocomplete="off" /> 57 </p> 58 <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide"> 59 <label for="password_2"><?php esc_html_e('Confirm new password', 'woocommerce'); ?></label> 60 <input type="password" class="woocommerce-Input woocommerce-Input--password input-text" name="password_2" id="password_2" autocomplete="off" /> 61 </p> 62 </fieldset> 63 <div class="clear"></div> 64 65 <?php do_action('woocommerce_edit_account_form'); ?> 66 67 <p> 68 <?php wp_nonce_field('save_account_details', 'save-account-details-nonce'); ?> 69 <button type="submit" class="woocommerce-Button button" name="save_account_details" value="<?php esc_attr_e('Save changes', 'woocommerce'); ?>"><?php esc_html_e('Save changes', 'woocommerce'); ?></button> 70 <input type="hidden" name="action" value="save_account_details" /> 71 </p> 72 73 <?php do_action('woocommerce_edit_account_form_end'); ?> 74 </form> 75 76<?php do_action('woocommerce_after_edit_account_form'); 77} 78 79add_action('woocommerce_account_my-dosu-endpoint_endpoint', 'my_custom_endpoint_content'); 80 81 82 83function my_custom_endpoint_title($title) 84{ 85 global $wp_query; 86 $is_endpoint = isset($wp_query->query_vars['my-dosu-endpoint']); 87 if ($is_endpoint && !is_admin() && is_main_query() && in_the_loop() && is_account_page()) { 88 // New page title. 89 $title = __('OOOO', 'woocommerce'); 90 remove_filter('the_title', 'my_custom_endpoint_title'); 91 } 92 return $title; 93} 94add_filter('the_title', 'my_custom_endpoint_title');
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。