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 есть какая-то особенность о которой я не знаю?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
используйте update_option()
add_option() можно использовать только один (первый) раз, далее если опция существует, он ничего не делает
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы