Как проверить форму оформления заказа WooCommerce - PullRequest
1 голос
/ 02 мая 2020

В woocommerce форма оформления заказа (Город / Город) не подтверждается этим кодом.

// Check if Ship to a different address is set, if it's set then validate shipping fields.
if (!empty($ship_to_different_address)) {
    if (empty(trim($billing_city)) || !ctype_alpha($billing_city)) {
        wc_add_notice(__('Only alphabets are alowed in <strong>Shipping First Name</strong>.'), 'error');
    }
    if (empty(trim($shipping_city)) || !ctype_alpha($shipping_city)) {
        wc_add_notice(__('Only alphabets are alowed in <strong>Shipping Last Name</strong>.'), 'error');
    }
}

1 Ответ

1 голос
/ 02 мая 2020

Нечто подобное может сработать ...

function so_61559494_validate_checkout() {

    if( ! empty( $_POST['ship_to_different_address'] ) ) {

        $billing_city = ! empty( $_POST['billing_city'] ) ? trim( $_POST['billing_city'] ) : '';

        if (  empty( $billing_city ) || ! ctype_alpha( $billing_city ) ) {
            $notice = __('Only alphabets are alowed in <strong>Billing City</strong>.', 'your-text-domain' );
            throw new Exception( $notice );
        }

        $shiping_city = ! empty( $_POST['shiping_city'] ) ? trim( $_POST['shiping_city'] ) : '';

        if ( empty( $shipping_city ) || ! ctype_alpha( $shipping_city ) ) {
            $notice = __('Only alphabets are alowed in <strong>Shipping City</strong>.', 'your-text-domain' );
            throw new Exception( $notice );
        }

    }

} 
add_action( 'woocommerce_checkout_process', 'so_61559494_validate_checkout' );

Это полностью не проверено, поэтому используйте с осторожностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...