Задать вопрос
blood-moon
@blood-moon
Фрилансер

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

Вообщем ребят , нужно написать плагин который будет работать как-то так
1. Человек указывает N слово в настройках плагина
Тык
5bccd4022628f109212822.jpeg

2. Плагин делает всякие извращения с этим словом и выводит результат в нужном месте с помощью шорткода

Но не пойму как сохранять это слово (в БД) и вызывать его в коде для моих задач .
Вот что есть
<?php 

add_shortcode('plugin_name', 'plugin_name_post_shortcode');
function plugin_name_post_shortcode()
{
	/* Тут мы делаем что-то с текстом */
	$textSetting = "Вот тут слово которое можно менять в настройках";
	return "<h2>Слово : " . $textSetting . "</h2>";
}

add_action('admin_menu', 'plugin_name_admin_page');
function plugin_name_admin_page()
{
    add_options_page('Тест плагин', 'Тест плагин', 8,  __FILE__, 'plugin_name_options_page');
}

function plugin_name_options_page()
{
	?>
	<div class="wrap">
		<h2>Настройки плагина</h2>
		<form>
			<input type="text" name="text">
			<input type="submit" name="submit" class="button button-primary" value="Сохранить">
		</form>
	</div>
	<?php 
}


Опыта в создание плагинов не было вообще , так что не серчайте за глупые вопросы . В Гугле не нашёл :(
  • Вопрос задан
  • 48 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
san_jorich
@san_jorich
Творческий кодер
Почитайте Блог Миши, или Каму. Если не получиься самостоятельно пишите "манипуляции".
А вообще add_option get_option update_option итд.
Бонус )
<?php
/*
Plugin Name: My_Word
Plugin URI: https://toster.ru/q/572856
Description: Плагин делает всякие извращения с этим словом и выводит результат в нужном месте с помощью шорткода
Version: 1.0
Author: Александр Соболев
Author URI: http://vk.com/san_jorich
License: GPL2
*/
/*  Copyright 2018  SOBOLEV_ALEKSANDER  (email : samigrai@mail.ru) */

function mw_options() {
  global $mw_page;
  add_options_page( 'My Word Options', 'My Word Options', 'manage_options', $mw_page, 'mw_option_page');  
}
add_action('admin_menu', 'mw_options');

function mw_option_page(){
  global $mw_page;
  ?><div class="wrap">
    <h2>My Word Option's Page</h2>
    <form method="post" enctype="multipart/form-data" action="options.php">
      <?php 
      settings_fields('mw_options'); 
      do_settings_sections($mw_page);
      ?>
      <p class="submit"><input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /></p>
    </form>
  </div><?php
}
 
function mw_option_settings() {
  global $mw_page;	
  register_setting( 'mw_options', 'mw_options', 'mw_validate_settings' ); 	
  add_settings_section( 'mw_section', 'Основные настройки', '', $mw_page ); 	
  $mw_field_params = array(
    'type'      => 'text',
    'id'        => 'my_word',
    'desc'      => 'Слово для манипуляций.', 
    'label_for' => 'my_word' 
  );
  add_settings_field( 'my_text_field', 'Слово', 'mw_option_display_settings', $mw_page, 'mw_section', $mw_field_params ); 
}
add_action( 'admin_init', 'mw_option_settings' );
 
function mw_option_display_settings($args) {
  extract( $args ); 
  $option_name = 'mw_options'; 
  $o = get_option( $option_name ); 
  switch ( $type ) {  
    case 'text':  
      $o[$id] = esc_attr( stripslashes($o[$id]) );
      echo "<input class='regular-text' type='text' id='$id' name='" . $option_name . "[$id]' value='$o[$id]' />";  
      echo ($desc != '') ? "<br /><span class='description'>$desc</span>" : "";  
    break;

  }
}
 
function mw_validate_settings($input){foreach($input as $k => $v) {$valid_input[$k] = trim($v);} return $valid_input;}

function view_manipulations(){
$mw_option = get_option('mw_options'); $result_div='<div id="mw_option">'.$mw_option['my_word'].'</div>';return $result_div;}
add_shortcode( 'mw_option', 'view_manipulations' );
?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы