Задать вопрос
san_jorich
@san_jorich
Творческий кодер

Как работает add_option?

Пытаюсь сохранить массив опций плагна кодом:
add_action( 'wp_ajax_save_conditional_logic', 'save_conditional_logic' );
add_action( 'wp_ajax_nopriv_save_conditional_logic', 'save_conditional_logic' );
function save_conditional_logic(){
  if(isset($_POST['ae_conditional_logic']) and !empty($_POST['ae_conditional_logic'])){
  add_option('ae_conditional_logic', $_POST['ae_conditional_logic']);
  $response="ok!"; wp_send_json($response); }
}

Данные в который отправляются ajax-ом, и приходят туда успешно
jQuery('#save_conditional_logic').on('click', function(){
  	ae_conditional_logic ={};
  	jQuery('div[needed="true"]').each(function(){ 
  		var id = jQuery(this).attr('id');
  		var path = jQuery(this).attr('path');
  		var estate_type = jQuery(this).find('select#estate_type').find('option:selected').val();
  		var estate_operation = jQuery(this).find('select#estate_operation').find('option:selected').val();
  		ae_conditional_logic[id] = {'path':path, 'estate_type':estate_type, 'estate_operation':estate_operation}
  	});
  	jQuery.ajax({
		type: "POST",
	    url: ajaxurl,
	    dataType: 'json',
	    data: { action: 'save_conditional_logic', ae_conditional_logic : ae_conditional_logic },
	    beforeSend: function(){console.log(ae_conditional_logic);},
	    success: function(response) { 	console.log('Ответ '+response);  }
	});	
  });

И консоль радостно Okает, но опции не сохраняются.
foreach ( glob( plugin_dir_path( __FILE__ )."../forms/*.php" ) as $file ){
      if(isset($ae_conditional_logic[basename($file)])){ print_r($ae_conditional_logic[basename($file)]);  ...

print_r готоворит нету данных..

Что я не так делаю? У add_option есть какая-то особенность о которой я не знаю?
  • Вопрос задан
  • 77 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
используйте update_option()
add_option() можно использовать только один (первый) раз, далее если опция существует, он ничего не делает
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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