Проблема с отображением сообщения об ошибке на странице администратора WordPress.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Проблема с отображением сообщения об ошибке на странице администратора WordPress.

Сообщение Anonymous »


Я создал код, который проверяет варианты перед добавлением на наличие дубликатов. Сам PHP-код работает, но у меня проблема с JS, который не хочет работать с PHP-кодом и проверяет наличие дубликатов, из-за чего сообщение об ошибке не хочет отображаться. Может ли кто-нибудь помочь мне, что я делаю неправильно?

публичная функция __construct() { add_action('save_post', array($this, 'saveCustomVariantsMetabox'), 10, 2); } общественная функция saveCustomVariantsMetabox($post_id, $post) { // Проверьте nonce, прежде чем продолжить. if (!isset($_POST['custom_variants_nonce']) || !wp_verify_nonce($_POST['custom_variants_nonce'], plugin_basename(__FILE__))) { вернуть $post_id; } // Проверяем, есть ли у пользователя разрешение на редактирование сообщения. if (!current_user_can('edit_post', $post_id)) { вернуть $post_id; } // Не сохранять во время автосохранения или массового редактирования. if (определено('DOING_AUTOSAVE') && DOING_AUTOSAVE || isset($_REQUEST['bulk_edit'])) { вернуть $post_id; } // Теперь сохраняем данные пользовательских вариантов $custom_variants = (isset($_POST['variants']) && !empty($_POST['variants'])) ? $_POST['варианты'] : []; // Флаг дубликатов $has_duplications = ложь; // Обеззараживание и подготовка к проверке дубликатов $sanitized_variants = []; $existing_variants_hashes = []; // Сохраняем хеши существующих вариантов $has_duplications = ложь; // Флаг для отслеживания обнаружения дубликатов foreach ($custom_variants as $index => $variant) { // Очистка пользовательского ввода. $variant['id'] = sanitize_text_field($variant['id']); $variant['dimensions'] = sanitize_text_field($variant['dimensions']); $variant['width'] = sanitize_text_field($variant['width']); $variant['height'] = sanitize_text_field($variant['height']); $variant['regular_price'] = floatval($variant['regular_price']); $variant['sale_price'] = floatval($variant['sale_price']); $variant['weight'] = sanitize_text_field($variant['weight']); $variant['sku'] = sanitize_text_field($variant['sku']); $variant['shipping_class'] = sanitize_text_field($variant['shipping_class']); $hash = md5($variant['width']. $variant['height'] . $variant['regular_price']); if (in_array($hash, $existing_variants_hashes)) { // Устанавливаем флаг в значение true, если найден дубликат $has_duplications = правда; перерыв; } // Сохраняем хеш для дальнейшего сравнения $existing_variants_hashes[] = $hash; $sanitized_variants[] = $вариант; } // Проверяем, не найдены ли дубликаты если ($has_duplications) { update_post_meta($post_id, 'custom_variants_duulate', '1'); } еще { delete_post_meta($post_id, 'custom_variants_duulate'); update_post_meta($post_id, 'custom_variants', $sanitized_variants); } вернуть $post_id; }} функция check_duulate_variants_before_publish() { глобальный $пост; // Pobierz wartość метаданыч $hasDuulateVariant = get_post_meta($post->ID, 'custom_variants_duulate', true); // Конвертация войны на логику войны $hasDuplateVariant = $hasDuplateVariant === '1' ? правда: ложь; // Urucho skrypt tylko jestnieje duplikat если ($hasDuplateVariant) { ?> jQuery(документ).ready(функция($) { $('#publish').click(function(e){ var hasDuplateVariant = ; если (hasDuplateVariant) { е.preventDefault(); alert('Wykryto duplikat wariantu. Proszę usunąć duplikat przed opublikowaniem posta.'); вернуть ложь; } вернуть истину; }); }); ;
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»