最新のWooCommerceバージョンを使用して、私はパスワード変更フォームを別のページに表示しようとしています。問題は、woocommerce> templates> myaccount> form-edit-account.phpのデフォルトフォームをコピーし、別のページにコードを配置しても機能しないことです。WooCommerce別のページにパスワードフォームを変更する
これは、そのテンプレートから元のコードです:
<?php
if (! defined('ABSPATH')) {
exit;
}
do_action('woocommerce_before_edit_account_form'); ?>
<form class="woocommerce-EditAccountForm edit-account" action=""
method="post">
<?php do_action('woocommerce_edit_account_form_start'); ?>
<p class="woocommerce-form-row woocommerce-form-row--first form-row form-
row-first">
<label for="account_first_name"><?php _e('First name', 'woocommerce');
?> <span class="required">*</span></label>
<input type="text" class="woocommerce-Input woocommerce-Input--text
input-text" name="account_first_name" id="account_first_name" value="<?php
echo esc_attr($user->first_name); ?>" />
</p>
<p class="woocommerce-form-row woocommerce-form-row--last form-row form-row-
last">
<label for="account_last_name"><?php _e('Last name', 'woocommerce'); ?
> <span class="required">*</span></label>
<input type="text" class="woocommerce-Input woocommerce-Input--text
input-text" name="account_last_name" id="account_last_name" value="<?php
echo esc_attr($user->last_name); ?>" />
</p>
<div class="clear"></div>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-
wide">
<label for="account_email"><?php _e('Email address', 'woocommerce'); ?
> <span class="required">*</span></label>
<input type="email" class="woocommerce-Input woocommerce-Input--email
input-text" name="account_email" id="account_email" value="<?php echo
esc_attr($user->user_email); ?>" />
</p>
<!--<fieldset>
<legend><?php _e('Password change', 'woocommerce'); ?></legend>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-
row-wide">
<label for="password_current"><?php _e('Current password (leave
blank to leave unchanged)', 'woocommerce'); ?></label>
<input type="password" class="woocommerce-Input woocommerce-Input--
password input-text" name="password_current" id="password_current" />
</p>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-
row-wide">
<label for="password_1"><?php _e('New password (leave blank to leave unchanged)', 'woocommerce'); ?></label>
<input type="password" class="woocommerce-Input woocommerce-Input--
password input-text" name="password_1" id="password_1" />
</p>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
<label for="password_2"><?php _e('Confirm new password',
'woocommerce'); ?></label>
<input type="password" class="woocommerce-Input woocommerce-Input--
password input-text" name="password_2" id="password_2" />
</p>
</fieldset>-->
<div class="clear"></div>
<?php do_action('woocommerce_edit_account_form'); ?>
<p>
<?php wp_nonce_field('save_account_details'); ?>
<input type="submit" class="woocommerce-Button button" name="save_account_details" value="<?php esc_attr_e('Save changes', 'woocommerce'); ?>" />
<input type="hidden" name="action" value="save_account_details" />
</p>
<?php do_action('woocommerce_edit_account_form_end'); ?>
だから私の質問は、分離ページでのみ、このコードの内容を表示する方法です:事前に
<legend><?php _e('Password change', 'woocommerce'); ?></legend>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-
row-wide">
<label for="password_current"><?php _e('Current password (leave
blank to leave unchanged)', 'woocommerce'); ?></label>
<input type="password" class="woocommerce-Input woocommerce-Input--
password input-text" name="password_current" id="password_current" />
</p>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-
row-wide">
<label for="password_1"><?php _e('New password (leave blank to
leave unchanged)', 'woocommerce'); ?></label>
<input type="password" class="woocommerce-Input woocommerce-Input--
password input-text" name="password_1" id="password_1" />
</p>
<p class="woocommerce-form-row woocommerce-form-row--wide form-row form-
row-wide">
<label for="password_2"><?php _e('Confirm new password',
'woocommerce'); ?></label>
<input type="password" class="woocommerce-Input woocommerce-Input--
password input-text" name="password_2" id="password_2" />
</p>
</fieldset>
感謝!
はい、halpsですが、保存する場合は、新しいパスワードを保存すると、データはDBに更新されません。 – DrMTR
Developers 'Toolsで送信されているPOST要求を見て、応答が何であるかを確認してください。エラーが発生した場合は、デバッグして、なぜ壊れているのかを知ることができます。 – plushyObject