WooCommerce:验证“我的帐户”编辑页面上的自定义字段

时间:2016-06-01 14:30:25

标签: php wordpress woocommerce custom-fields account

我已使用this process为我的WooCommerce注册添加了自定义字段。 我已使用以下操作在“我的帐户”编辑页面上将其显示:

// added custom fields here
add_action( 'woocommerce_edit_account_form', 'my_woocommerce_edit_account_form' );   

// saved user meta here
add_action( 'woocommerce_save_account_details', 'my_woocommerce_save_account_details' );

在两者之间,我需要在编辑时验证这些字段。我尝试使用woocommerce_process_myaccount_field_过滤器(as mentioned here),但这不起作用。保存更改时,其中的代码不会触发。

有关如何验证的任何想法?
我使用的是正确的过滤器吗?
如果是,为什么不触发?

感谢。

1 个答案:

答案 0 :(得分:5)

您可以尝试使用这2个钩子中的一个来验证自定义字段。

add_action( 'user_profile_update_errors','wooc_validate_custom_field', 10, 1 );

// or

add_action( 'woocommerce_save_account_details_errors','wooc_validate_custom_field', 10, 1 );

// with something like:

function wooc_validate_custom_field( $args )
{
    if ( isset( $_POST['custom_field'] ) ) // Your custom field
    {
        if(strlen($_POST['custom_field'])<4 ) // condition to be adapted
        $args->add( 'error', __( 'Your error message', 'woocommerce' ),'');
    }
}