Внутри моей функции я пытаюсь сделать что-то вроде этого:
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 для этого, который был бы идеальным!