Правильный способ хранения данных в базе данных в плагине WordPress - PullRequest
1 голос
/ 22 сентября 2019

Я создал этот плагин для сайта Wordpress, на странице администратора я вставил модал, который может изменить определенный цвет в css, только если он нажал кнопку определенного цвета.

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

Пожалуйста, не могли бы вы показать WordPress правильный способ обновления или вставки данных в базу данных, а затем показать изменения на странице администратора?

Спасибо.

function recensility_system_action_color_fest($id ,  $title, $footer )
{
global $wpdb;

$colors = $wpdb->get_results('SELECT *  FROM '.$wpdb->prefix.'recensility_color_fest', ARRAY_A);
?>
<!-- The Modal -->
<div id="<?php echo $id; ?>" class="recensility-modal">
<!-- Modal content -->
<div id="<?php echo $id.'-insert'; ?>" class="recensility-modal-content">
  <div class="recensility-modal-header">
<span id="<?php echo $id.'-close'; ?>" class="recensility-modal-close" onclick="close_modal('<?php echo $id; ?>')">&times;</span>
<h2 class="recensility-modal-title"><i class="fas fa-swatchbook"></i><?php echo $title; ?></h2>
  </div>
  <div class="recensility-modal-body">
<center>
<h2>Clicca sul colore da impostare</h2>
<div class="recensility-color-fest-chooser">
<form id="recensility-color-fest-form" method="post">
   <div class="recensility-color-fest-chooser-body">
   <div class="recensility-color-fest-chooser-items">
   <?php 
   foreach ($colors as $color){
   ?>
<div class="dot-container <?php echo ($color['is_active']=='true') ? 'dot-active' : 'dot-inactive'; ?>">
   <?php 
   echo 
   ($color['is_active']=='true') 
   ? 
  '<p class="dot-active-text">Attivo</p>' 
   :
  '<button id="recensility-color-fest-form-submit" name="recensility-color-fest-form-submit" class="recensility-color-fest-form-button" value="'. $color['value'].'" type="submit" form="recensility-color-fest-form">';
?>
  <span  class="dot" style="background-color:<?php echo $color['value'] ?>"></span>
  <?php echo ($color['is_active']=='false') ? '</button>' : ''; ?>
  <p><?php echo $color['name'] ?></p>
</div>
   <?php
   }
   ?>
   </div>
   </div>
</form>
   </div>
 </center>
  </div>
  <div class="recensility-modal-footer">
<h3 class="recensility-modal-footer-content"><?php echo $footer; ?></h3>
  </div>
<?php 
print_r($_POST);
if (!empty($_POST['recensility-color-fest-form-submit'])){
$activeColor = ($wpdb->get_results('SELECT `value` FROM '.$wpdb->prefix.'recensility_color_fest'.' WHERE `is_active` = "true"', ARRAY_A)[0])['value'];

$wpdb->update
(
$wpdb->prefix.'recensility_color_fest',
array('is_active' => 'false'),
array('is_active' => 'true')
);

recensility_color_fest_apply($activeColor, $_POST['recensility-color-fest-form-submit']);

$wpdb->update
(
$wpdb->prefix.'recensility_color_fest',
array('is_active' => 'true'),
array('value' => $_POST['recensility-color-fest-form-submit'])
);
}
?>
</div>
</div>
<?php
}
...