Устанавливать и сбрасывать атрибуты custom_attributes для полей оформления заказа, если они пустые или нет в WooCommerce - PullRequest
0 голосов
/ 22 сентября 2018

Внутри моей функции я пытаюсь сделать что-то вроде этого:

if ( !empty( $fields['billing']['billing_phone'] ) ) {
    $fields['billing']['billing_phone']['custom_attributes'] = array('disabled'=>'disabled');
  }
  elseif ( empty( $fields['billing']['billing_phone'] ) ) {
    // Here's my problem. I don't know how to unset, disable or delete that array previously added.
  }

То, что я хочу заархивировать здесь, это то, что, если поле пусто, пользователь должен иметь возможность добавлять информацию дляТолько в первый раз.

Спасибо!

Мое собственное решение:

Важно: Не забудьте удалить / игнорировать предыдущий код (этот методне работает для меня).

Я только что добавил этот javascript на странице оформления заказа.

jQuery(document).ready(function($){
    $('input[name*=billing_phone_no]').map(function()
{
   if( $(this).val() ) {
          $(this).attr("disabled", 'disabled');
          $(this).addClass('notactive');
    }
});
        });

CSS: Кроме цвета фона, кажется, что этоНет необходимости, вы можете попробовать без CSS.

input.notactive {
    background: #eee !important;
    pointer-events: none;
    cursor: default;
}

Несколько входов

Если вам нужно сделать то же самое для нескольких входов одновременно, выможно изменить эту строку:

$('input[name*=billing_phone_no]').map(function()

для этой:

$('input[name*=billing_phone_no], input[name*=billing_phone_digt_countrycode], input[name*=billing_email]').map(function()

Возможно, это не идеальное / самое чистое решение. Если вы знаете, как улучшить это, пожалуйста, дайте мне знать:)

Все еще ищите помощи: Кто-нибудь знает метод PHP / functions для этого, который был бы идеальным!

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