2014-03-19 28 views
0

在woocommerce form-edit-account.php,我有以下,但只想保留密碼和確認新密碼字段。我刪除了除密碼和確認新密碼字段以外的所有字段,但有一個驗證程序提示我填寫名字,姓氏,電子郵件地址字段。我如何禁用驗證器?真的需要幫助。提前致謝。Woocommerce save_account_details

<?php 
/** 
* Edit account form 
* 
* @author  WooThemes 
* @package  WooCommerce/Templates 
* @version  1.6.4 
*/ 

if (! defined('ABSPATH')) exit; // Exit if accessed directly 

global $woocommerce; 
?> 

<?php wc_print_notices(); ?> 

<form action="" method="post"> 

    <p class="form-row form-row-first"> 
     <label for="account_first_name"><?php _e('First name', 'woocommerce'); ?> <span class="required">*</span></label> 
     <input type="text" class="input-text" name="account_first_name" id="account_first_name" value="<?php esc_attr_e($user->first_name); ?>" /> 
    </p> 
    <p class="form-row form-row-last"> 
     <label for="account_last_name"><?php _e('Last name', 'woocommerce'); ?> <span class="required">*</span></label> 
     <input type="text" class="input-text" name="account_last_name" id="account_last_name" value="<?php esc_attr_e($user->last_name); ?>" /> 
    </p> 
    <p class="form-row form-row-wide"> 
     <label for="account_email"><?php _e('Email address', 'woocommerce'); ?> <span class="required">*</span></label> 
     <input type="email" class="input-text" name="account_email" id="account_email" value="<?php esc_attr_e($user->user_email); ?>" /> 
    </p> 
    <p class="form-row form-row-first"> 
     <label for="password_1"><?php _e('Password (leave blank to leave unchanged)', 'woocommerce'); ?></label> 
     <input type="password" class="input-text" name="password_1" id="password_1" /> 
    </p> 
    <p class="form-row form-row-last"> 
     <label for="password_2"><?php _e('Confirm new password', 'woocommerce'); ?></label> 
     <input type="password" class="input-text" name="password_2" id="password_2" /> 
    </p> 
    <div class="clear"></div> 

    <p><input type="submit" class="button" name="save_account_details" value="<?php _e('Save changes', 'woocommerce'); ?>" /></p> 

    <?php wp_nonce_field('save_account_details'); ?> 
    <input type="hidden" name="action" value="save_account_details" /> 
</form> 

回答

2

哦,我使用此:

// Hook in 
add_filter('woocommerce_default_address_fields' , 'custom_override_default_address_fields'); 

function custom_override_default_address_fields($fields) { 
    unset($fields['first_name']); 
    return $fields; 
} 

將來自兩個,結算和送貨地址刪除名字字段。而已?

1

您可以手動刪除這些驗證。

Woocomaerce->包括 - >類-WC外形handler.php 查找功能

save_account_details() 

編輯此功能,或者您可以在這裏刪除驗證形式。

+0

謝謝@Yatendra。這很好,但有沒有另一種方式不編輯核心文件?喜歡在functions.php中添加一些動作?謝謝 – Origami

+0

嗨,我也正在尋找這樣的解決方案,我如何刪除驗證程序而不接觸核心文件? –

1

經過一番快速的研究,解決方案正是你的問題,也怨恨我的問題。

只需添加這的functions.php

add_filter('woocommerce_save_account_details_required_fields','custom_woocommerce_save_account_details_required_fields'); 
function custom_woocommerce_save_account_details_required_fields($required_fields) { 
unset($required_fields["account_first_name"]); 
unset($required_fields["account_last_name"]); 
return $required_fields; 
} 

它將從必填字段的條件刪除名字字段名和姓字段。當然,你可以用你所需的所有輸入來做到這一點。