settings_errors() WP 3.0.0

Виводить на екран повідомлення (повідомлення та помилки) зареєстровані функцією add_settings_error() .

Ця функція є однією з групи функцій API налаштувань .

settings_errors() функція викликається WordPress автоматично, коли завантажується будь-яка сторінка налаштувань (сторінка розділу адмін-панелі “Параметри”). Якщо в масиві помилок ( global $wp_settings_errors) є зареєстровані повідомлення, вони будуть виведені в admin_notice.

Повідомлення про результати перевірки значень опцій потрібно реєструвати в момент обробки цих значень – це параметр $sanitize_callback у функції register_setting( $option_group, $option_name, $sanitize_callback ).

WordPress автоматично виводить усі зареєстровані повідомлення на сторінках налаштувань, тому зазвичай немає потреби викликати цю функцію – вона викликається автоматично. Однак, якщо ви виводите налаштування наприклад у плагіні, виведення помилок потрібно викликати цією функцією.

Працює на основі:
get_settings_errors()

Хуків немає.

Повертає

null. Виводить на екран HTML код повідомлень про помилку.

Використання

settings_errors( $setting, $sanitize, $hide_on_update );
$setting
(рядок)
Ідентифікатор групи повідомлень, зазвичай це назва опції. Повинен збігатися з параметром $setting з
add_settings_error( $setting ). Якщо не вказати нічого, то буде повернено всі зареєстровані помилки.


За замовчуванням: ”
$ Sanitize
(логічний)
Вкажіть true, щоб активувати функцію sanitize_option() – очищає опцію за фільтром вказаним у
sanitize_option() (для кожної опції свій фільтр). Якщо опція не проходить перевірку, автоматично реєструється відповідне повідомлення про помилку.


Типово: false
$hide_on_update
(логічний)
Вкажіть true, щоб приховувати всі повідомлення при збереженні опцій. Повідомлення про валідацію даних потрібно буде виводити при першому заході на сторінку налаштувань.Якщо користувач зберіг нові значення, повідомлення про помилки будуть сховані, щоб уникнути повторення повідомлень, які вже були показані до збереження налаштувань. Це корисно, коли потрібно показувати важливі помилки при поверненні на сторінку налаштувань, наприклад: опція не може бути порожньою.


Типово: false

Приклади

0

#1 Виведемо всі повідомлення, зареєстровані для нашої опції my_setting_error:

function your_admin_notices_action() {
	settings_errors( 'my_setting_error' );
}
add_action( 'admin_notices', 'your_admin_notices_action' );

список змін

З версії 3.0.0Введено.
З версії 5.3.0Legacy error і updated CSS classes є mapped до notice-error і notice-success .

Код settings_errors() WP 6.0.2

function settings_errors( $setting = '', $sanitize = false, $hide_on_update = false ) {

	if ( $hide_on_update && ! empty( $_GET['settings-updated'] ) ) {
		return;
	}

	$settings_errors = get_settings_errors( $setting, $sanitize );

	if ( empty( $settings_errors ) ) {
		return;
	}

	$output = '';

	foreach ( $settings_errors as $key => $details ) {
		if ( 'updated' === $details['type'] ) {
			$details['type'] = 'success';
		}

		if ( in_array( $details['type'], array( 'error', 'success', 'warning', 'info' ), true ) ) {
			$details['type'] = 'notice-' . $details['type'];
		}

		$css_id = sprintf(
			'setting-error-%s',
			esc_attr( $details['code'] )
		);
		$css_class = sprintf(
			'notice %s settings-error is-dismissible',
			esc_attr( $details['type'] )
		);

		$output .= "<div id='$css_id' class='$css_class'> n";
		$output .= "<p><strong>{$details['message']}</strong></p>";
		$output .= "</div> n";
	}

	echo $output;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *