Intereting Posts
Доступ к переменным экземпляра из WP_Query URL-адрес восстановления пароля имеет ошибку – но не найден в коде или db Как удалить все записи из или удалить таблицу настраиваемых баз данных? Как работать беспрепятственно между разработками, стадиями и производственными сайтами в wordpress API-интерфейс Rest API 'rest_insert_post' не возвращает объект запроса Как хранить данные полей виджетов в виде массива? Обновление тем никогда не работает Полноценные слайдеры, используемые при разработке темы WP_Query и два настраиваемых поля не возвращают сообщений Как добавить пользовательскую таксономию для поиска Пользовательский показ страниц домашней страницы, тега и автора Удалить Shortcode из предварительного просмотра блога Как получить все сообщения с любым статусом сообщения? Редактирование пользовательских таблиц базы данных в WordPress Переписать постоянную ссылку по умолчанию post postink

Как сохранить настройки пользовательской страницы продукта вкладки в стороне администратора в базе данных?

введите описание изображения здесь

У меня есть следующий код:

<tr> <th><?php _e('Custom Stock Message'); ?></th> <td> <input type="text" name="customstock-msg" value=""/> </td> </tr> <tr> <th><?php _e('Order Processing Time'); ?></th> <td> <input type="text" name="customstock-Processing-time"> </td> </tr> <tr> <th><?php _e('Instock Date'); ?></th> <td> <!-- <input type="date" name="customstock-date" value=""/>--> <input type="text" id="datepicker" name="customstock-instockdate"> </td> </tr> <tr> <th><?php _e('Show Quantity when Instock'); ?></th> <td> <!-- <input type="date" name="customstock-date" value=""/>--> <select name="customstock-quantity" id="showquantity"> <option value="yes">Yes</option> <option value="no"> No</option> </select> </td> </tr> <tr> <th><?php _e('Show on Catlog Page'); ?></th> <td> <!-- <input type="date" name="customstock-date" value=""/>--> <select name="customstock-catlogpage" id="showcatlogpage"> <option value="yes">Yes</option> <option value="no"> No</option> </select> </td> </tr> ?> <p> <input type="submit" class="button-primary" name="customstock_submit_specific_product" value="<?php _e('Save Changes') ?>" /> </p> </form> if(isset($_POST['customstock_submit_specific_product'])) { global $wpdb,$product; $id = $product->id; $custommsg = sanitize_text_field( $_POST['customstock-msg'] ); $customprocessingtime = sanitize_text_field( $_POST['customstock-Processing-time'] ); $customstockquantity = sanitize_text_field( $_POST['customstock-quantity'] ); $customstockcatlogpage = sanitize_text_field( $_POST['customstock-catlogpage'] ); $customstockinstockdate = sanitize_text_field( $_POST['customstock-instockdate'] ); $customstockinstockdate = date("Ymd", strtotime($customstockinstockdate) ); $wpdb->insert('wp_woocommerce_specific_product_settings', array( 'custom_msg' => $custommsg, 'order_processing_time' => $customprocessingtime, 'exp_instock_date' => $customstockinstockdate, 'show_stockstatus_quantity' => $customstockquantity, 'showon_catlog' => $customstockcatlogpage, 'specific_product_id' => $id )); } 

Выше код вызывается при нажатии кнопки отправки. Я не хочу хранить в wp_postmeta то, что делать. Я начинаю в wordpress. У меня есть идея, как я могу его сохранить?

В зависимости от вашей ситуации я не рекомендую это делать, но ответ на ваш вопрос – это посмотреть на класс $wpdb и dbDelta() . Это интерфейс WordPress обеспечивает добавление пользовательских таблиц.

Будьте осторожны, но с большой силой приходит большая ответственность. Использование $wpdb обходит многие встроенные функции безопасности WordPress, поэтому вам нужно быть очень осторожным с дезинфекцией и экранированием данных, чтобы избежать внедрения уязвимостей SQL-инъекций и других дыр в безопасности.

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

 <?php /** * Database * * Add custom tables to a WordPress database */ if ( ! class_exists('DB_Table') ) : class DB_Table { protected $table; /** * Create Database Table * * Given a schema array, create a custom table in the WP database */ public static function create() { require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); global $wpdb, $charset_collate; $table = 'custom_table_name'; // The name of your custom DB table $schema = self::schema(); // create database table $table_name = $wpdb->prefix . $table; $sql = "CREATE TABLE IF NOT EXISTS $table_name ( "; $sql .= $schema; $sql .= " ) $charset_collate;"; // run create process dbDelta( $sql ); } /** * Schema: Level Term Rates * * Schema definition for the custom table */ public static function schema() { // Define your schema here for the table $schema = "id int(8) unsigned NOT NULL AUTO_INCREMENT, age int(3) NOT NULL DEFAULT '0', first_name text NOT NULL DEFAULT '', last_name text NOT NULL DEFAULT '', gender char(1) NOT NULL DEFAULT '', PRIMARY KEY (id)"; return $schema; } } /** * Register Hooks */ register_activation_hook( __FILE__, array( 'DB_Table', 'create' ) ); endif; ?>