【问题标题】:Set a unique validation error notice in Woocommerce My Account Addresses and Account Details在 Woocommerce 我的帐户地址和帐户详细信息中设置唯一的验证错误通知
【发布时间】:2018-11-13 11:12:27
【问题描述】:

如果必填字段为空,Woocommerce 结帐页面和我的帐户页面中的结算字段会显示个别错误。好吧,如果所有字段都为空,则这些空字段的所有错误都将显示为:
- 名字是必填字段
- 姓氏是必填字段
- 街道地址是必填字段
等等……

如果所有必填字段都为空,我只想显示一个错误,例如“错误:所有字段都为空。请填写所有必填字段以下订单。”好吧,我用下面的代码在结帐页面上以某种方式解决了这个问题:

add_action( 'woocommerce_after_checkout_validation', 'show_one_err', 9999, 2);
function show_one_err( $fields, $errors ){
    // if any validation errors
    if( !empty( $errors->get_error_codes() ) ) {

        // remove all of them
        foreach( $errors->get_error_codes() as $code ) {
            $errors->remove( $code );
        }

        // add our custom one
        $errors->add( 'validation', 'Please fill in all required fields to place order.' );
    }
}

我现在的问题是如何在 Woocommerce 我的帐户页面 - 帐单地址以及我的帐户 - 帐户详细信息选项卡中应用这些更改。我进行这些更改的唯一目的是在所有 Woocommerce 字段中都有一致的错误通知(请参阅下面的附件图片)。

结帐页面

我的帐户 - 帐单地址

我的帐户 - 帐户详细信息

【问题讨论】:

    标签: php wordpress validation woocommerce hook-woocommerce


    【解决方案1】:

    要将所有字段验证错误替换为来自帐户帐单和送货地址的唯一自定义错误以及帐户详细信息,您将使用以下使用两个验证挂钩的挂钩函数:

    add_action( 'woocommerce_save_account_details_errors', 'account_validation_unique_error', 9999 ); // Details
    add_action( 'woocommerce_after_save_address_validation', 'account_validation_unique_error', 9999 ); // Adresses
    function account_validation_unique_error(){
        $notices = WC()->session->get( 'wc_notices' ); // Get Woocommerce notices from session
    
        // if any validation errors
        if( $notices && isset( $notices['error'] ) ) {
    
            // remove all of them
            WC()->session->__unset( 'wc_notices' );
    
            // Add one custom one instead
            wc_add_notice( __( 'Please fill in all required fields…', 'woocommerce' ), 'error' );
        }
    }
    

    代码进入您的活动子主题(活动主题)的 function.php 文件中。经过测试并且可以工作。

    相关: Set a unique validation error notice in Woocommerce checkout page

    【讨论】:

    • 天哪。非常感谢。向你致敬@LoicTheAztec
    猜你喜欢
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    相关资源
    最近更新 更多