Intereting Posts
array_pop () ожидает массив, имеющий значение boolean для $ event_type_term -> slug Примените фильтр the_content, но запретите другие связанные действия register_post_type для страниц? В многопользовательской среде, которая является самым популярным блогом? Кнопка WordPress для пользователей exec-PHP показывает вывод в нижней части страницы Как создать новую копию темы, которая в настоящее время используется? Отобразить список категорий в рамках пользовательской таксономии Создать собственный размер эскиза на существующие сообщения Как избавиться от имени регистрационной формы в теме моего логина wp-плагина? Шаблон загрузки загрузок через ajax Напишите WP Query, который выбирает сообщения, которые являются частью одной и той же категории Почему WordPress 4.2.2 требует обновления FTP? ajax не работает в плагине Правильный способ включения JavaScript и CSS в мои темы WordPress

Установлен флажок?

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

// Checkbox to join list add_action( 'register_form', 'email_opt_in' ); function email_opt_in() { ?> <p> <label style="font-size:13px;"> <input type="checkbox" name="email_opt_in" id="email_opt_in" class="input" value="1" <?php checked( $_POST['email_opt_in'], 1 ); ?> tabindex="99" style="width:12px;padding:0;margin: 0 3px 0 0;font-size: 13px;" /> Join our famous e-mail list </label> </p> <br/><?php } 

Я использую проверенный, который отлично работает, но я хочу, чтобы флажок был установлен по умолчанию. Добавляет check checked="checked" чтобы input правильную вещь, чтобы сделать, или есть лучший способ сделать это?

Заранее спасибо!

Я должен добавить скрытое поле ввода с тем же именем перед флажком:

<input type="hidden" name="email_opt_in" value="0" />

Поскольку формы обрабатываются последовательно, вы получите «0», если форма была отправлена, но флажок не был отмечен (вместо того, чтобы ничего не получать).

Затем предположим, что флажок установлен, если форма не была отправлена ​​или она отправлена, и установлен флажок:

 $checked = !isset($_POST['email_opt_in']) || (isset($_POST['email_opt_in']) && $_POST['email_opt_in']); 

Позже:

... <?php checked($checked); ?>

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

Извините за этот долгий и скучный ответ на этот простой вопрос 🙂

Вам необходимо передать фактическое текущее значение опции checked() , а не значение $_POST .

Как вы регистрируете свои варианты и как вы ссылаетесь на них в своей форме?

Поскольку вы хотите, чтобы флажок установлен по умолчанию, в HTML нет способа, а не checked="checked" в HTML.