Пользовательский метабокс, вызывающий ошибку: «Вы уверены, что хотите это сделать? Пожалуйста, попробуйте еще раз."

У моего настраиваемого типа сообщений есть мета-поле, в котором перечисляются другие пользовательские типы сообщений в мета-окне. И это вызывает ошибку каждый раз, когда я пытаюсь опубликовать сообщение с этим настраиваемым типом сообщения. Это всегда приводит к странице, в которой говорится: «Вы уверены, что хотите сделать это? Пожалуйста, попробуйте еще раз». У меня нет проблем в моем локальном хосте, но он не работает, когда я запускаю его на своем веб-хостинге.

Вот коды:

add_action( 'add_meta_boxes', 'ind_pricing_tables_boxes' ); function ind_pricing_tables_boxes() { $screens = array( 'indtable' ); foreach ($screens as $screen) { add_meta_box('indtable_boxid', __( 'Pricing Table', 'pricing_table' ), 'ind_pricing_tables_boxes_form', $screen ); } } function ind_pricing_tables_boxes_form() { global $post; wp_nonce_field( 'ind_pricing_table_box_nonce' ); $ind_table_packs = get_post_meta($post->ID, "_ind_meta_table_keypacks", true); $ind_table_packs = ($ind_table_packs == '') ? array() : json_decode($ind_table_packs); $query = new WP_Query(array( 'post_type' => 'indpackage', 'post_status' => 'publish', 'posts_per_page' => -1, 'orderby' => 'post_date', 'order' => 'ASC' ) ); $ind_form_box = '<table class="form-table" border="1">'; $ind_form_box .= "<tr><th style=''> <b>Select Package</b> </th> <td> <b>Package Names</b> </td></tr>"; while ($query->have_posts()) : $query->the_post(); $checked_whichs = (in_array($query->post->ID, $ind_table_packs)) ? "checked" : ""; $ind_form_box .= "<tr><th style=''> <input type='checkbox' name='pricing_ind_table_packages[]' $checked_whichs value='" . $query->post->ID . "' /> </th><td>" . $query->post->post_title . " </td></tr>"; endwhile; $ind_form_box .= '</table>'; echo $ind_form_box ; } 

Что вызывает ошибку?

Сохранить функцию обмена

 function ind_save_pricing_boxtables($post_id) { if (!wp_verify_nonce($_POST['ind_pricing_table_box_nonce'], basename(__FILE__))) { return $post_id; } if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return $post_id; } if ('indtable' == $_POST['post_type'] && current_user_can('edit_post', $post_id)) { $pricing_ind_table_packages = (isset($_POST['pricing_ind_table_packages']) ? $_POST['pricing_ind_table_packages'] : array()); $pricing_ind_table_packages = json_encode($pricing_ind_table_packages); update_post_meta($post_id, "_ind_meta_table_keypacks", $pricing_ind_table_packages); } else { return $post_id; } } 

Solutions Collecting From Web of "Пользовательский метабокс, вызывающий ошибку: «Вы уверены, что хотите это сделать? Пожалуйста, попробуйте еще раз.""

поэтому вам нужно исправить свое поле nonce, добавив второе имя для коляски, больше информации о коде WordPress здесь

 // wp nonce field wp_nonce_field( $action, $name, $referer, $echo ); // replace yours with below wp_nonce_field( 'ind_pricing_table_box_nonce', 'ind_pricing_nonce' ); 

теперь проверяйте свое nonce, больше информации здесь

 wp_verify_nonce( $nonce, $action ); // replace yours with below if (!wp_verify_nonce( $_POST['ind_pricing_nonce'], 'ind_pricing_table_box_nonce' )) { return $post_id; }