我在尝试保存我正在创建的插件设置方面遇到了一些麻烦。
我试图实现的基本功能是,插件用户可以选择自定义帖子类型,这样做会返回该帖子对象的所有字段类型。
现在,上面的字段类型,他们可以选择他们想要显示的那些,即如果我有一个产品,我只想看到它的价格和描述,他们只需点击相应的复选框,它会更新其他插件功能。
目前,我正在使用Javascript创建所选复选框的数组,然后我打算将其保存为插件选项。
如何从Javascript获取该数组作为插件选项(option.php)参数传递,然后能够使用它根据保存的设置填充相应的复选框。
这是设置页面的一个简单示例,但我的解释并不清楚。
https://www.dropbox.com/s/ynwbs8bwj30g57n/before.png https://www.dropbox.com/s/jg2th2wrfd964zp/after.png
感谢您的反馈!
答案 0 :(得分:0)
我很长时间没有这样做,所以这可能不是很完美,但这里有一个关于使用AJAX解决问题的想法(在jQuery-一个JavaScript库中)。 Ajax允许您使用钩子将一个JSON字符串发送到functions.php中的php函数。
首先在你的functions.php中,你需要本地化wp ajax脚本。
function add_ajax(){
wp_localize_script( 'main-script', 'options', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ));
}
add_action( 'wp_head', 'add_ajax');
然后你需要添加一个以 wp_ajax _ 开头的动作钩子。这个钩子绑定到一个函数,它将处理你的选项,并将在jQuery脚本中调用。
add_action( 'wp_ajax_options', 'handle_options' );
add_action( 'wp_ajax_nopriv_options', 'handle_options' );
function handle_options() {
$options = $_POST['options'];
//DO SOMETHING
wp_die(); // this is required to terminate immediately and return a proper response
}
之后,您需要在用户选择其选项后进行ajax调用,这会将您的数组转换为JSON并发送使用操作钩子wp_ajax_options。像这样:
var options = = JSON.stringify(yourArray);
jQuery.ajax({
type: 'POST',
url: output.ajax_url,
data : {
action : 'options',
'options': options
},
success: function(response){
//you can do something here with the response.
}
});
请务必查看以下资源: