Customizer AJAX using buttons

时间:2017-05-30 作者:Dostomatic

我在wordpress自定义程序中添加了一个新的自定义按钮,我的目标是在自定义程序中创建一个按钮,然后在另一个自定义程序中启动特定功能。php文件。我有两个问题,一个是,只有当我想要激发的函数在其中任何一个函数中时,它才会起作用。php或自定义自定义程序。php。我的第二个问题是,只有当它是活动主题时,它才起作用。我对ajax和定制器还很陌生,所以感谢您的帮助。

  ////////////////////////////////////////////////////////
  inside my cystom customizer.php
  ////////////////////////////////////////////////////////
  $wp_customize->add_setting( \'ajax_button_settings\', array(
  ) );

  $wp_customize->add_control( new ajax_button(
  $wp_customize,
      \'pagebuilder\', array(
      \'section\' => \'section\',
      \'settings\' => \'ajax_button_settings\',
  ) ) );
 ////////////////////////////////////////////////////////
 if ( class_exists( \'WP_Customize_Control\' ) ) {

 class ajax_button extends WP_Customize_Control {

 public function render_content() { ?>

 <script>
 jQuery( document ).on( \'click\', \'.ajaxbutton\', function() {

 jQuery.ajax({
    url : \'/wordpress/wp-admin/admin-ajax.php\',
    type : \'post\',
    data : {
        action : \'my_action\',
    },

   });
   })
 </script>

 <button type="button" class="ajaxbutton">CLICK ME</button>

 <?php
    }
  }
 }
 ?>
 ////////////////////////////////////////////////////////
 inside my functions.php
 ////////////////////////////////////////////////////////
 add_action(\'wp_ajax_my_action\',\'ajaxfuntion\');
 add_action(\'wp_ajax_nopriv_my_action\',\'ajaxfunction\');

    function ajaxfunction(){
 //my function//
     die();

    }

1 个回复
SO网友:Mark Kaplun

在定制器中使用任何AJAX,首先就没有理由使用定制器。自定义程序的思想是,它在激活时完全控制设置的状态,并且在不通过自定义程序逻辑的情况下更新任何设置,实际上可能会导致向用户显示的内容与保存时设置的实际操作不匹配。

如果您以“只读”的方式使用ajax,也许可以,但现在我发现很难想象它在什么情况下有用,并且不能仅仅通过将值作为参数添加到实现控件的代码中来实现。

结束

相关推荐

WooCommerce AJAX跨域加入购物车

我无法从其他域添加到购物车我已经启用了CORS标头,ajax工作正常,但随后对cart状态的ajax查询会导致空响应我想这一定与Cookie/session有关,但不确定是什么(我还没有深入了解WC的内部结构,这几天我的脑袋一直在转,所以我很感谢专家的建议)这就是我在PHP中的内容:add_action( \'wp_ajax_a3_add_to_cart\', \'a3_add_to_cart\' ); add_action( \'wp_ajax_nopriv_a3_add_to_cart\',