我正在开发一个简单的插件,它可以检查用户是否点击按钮并在WordPress中设置cookie。一切正常,但当我尝试更新帖子或页面时,我会得到“更新失败。响应不是有效的JSON响应。”我无法弄清楚如何解决这个问题。此外,我问我是否正在做正确的过程来挂钩翻译并在Worpress init中显示对话框。
if(!defined('ABSPATH')) {
exit;
}
// ACTION
add_action('wp_enqueue_scripts', 'cp_scripts');
function cp_scripts() {
wp_enqueue_style('cookie-style', plugins_url('style.css', __FILE__));
wp_enqueue_script('cookie-script', plugins_url('script.js', __FILE__));
}
add_action('init', 'my_plugin_show_confirm');
// add_action('init', 'register_pll_translation');
function register_pll_translation() {
if(function_exists('pll_register_string')) {
pll_register_string( 'cp_form_subtitle', "string", 'cp-form', false );
pll_register_string( 'cp_form_age_ok', "string", 'cp-form', false );
}
}
function my_plugin_show_confirm() {
if (!isset($_COOKIE['cp_enter']) && !is_admin() ) {
$current_url = get_the_permalink();
if(isset($_POST['submit'])) {
setcookie('cp_enter', 1 , time() + (60 * 60 * 24 * 30), COOKIEPATH, COOKIE_DOMAIN);
return;
} ?>
<div id="my-plugin-confirm">
<form action="<?php echo $current_url ?>" method="post">
<h2><?php echo esc_html(get_bloginfo('name'));?></h2>
<p><Click to enter</p>
<button type="submit" name="submit">Enter</button>
</form>
</div>
<?php } ?>
字符串
1条答案
按热度按时间rta7y2nd1#
我添加了一个新的函数
my_plugin_set_cookie()
,它被挂接到init。这个函数检查表单是否已经提交并设置cookie。设置cookie后,它会将用户重定向到同一页面,以避免在用户刷新表单时重新发送表单。my_plugin_show_confirm()
函数现在只负责输出表单。字符串