可以使用变量设置Wordpress cron时间表吗?

时间:2016-11-27 13:01:05

标签: wordpress cron

我添加了一个自定义间隔,如下所示

当我提交之后,我使用$ _POST

获得了值
add_filter( 'cron_schedules', 'my_cron_custom_hook' );
        function my_cron_custom_hook( $schedules ) {

      if (isset($_POST['expiry'])) {
          $settings = $_POST['expiry'];
           $expiry = $settings['expiry']; -- > got the value
       }  

   $schedules['specific_time'] = array(
        'interval' => $expiry,--> (Got value here)
         'display' => __('Specific Time')
    );
}

在这种情况下,我得到 $ expiry

的值
 add_filter( 'cron_schedules', 'my_cron_custom_hook' );
      function my_cron_custom_hook( $schedules ) {

       $settings = get_option( 'from_value' ); 
       $expiry = $settings['expiry'];
       $schedules['specific_time'] = array(
      'interval' => $expiry,--> (can't get the value here)
       'display' => __('Specific Time')
    );
}

我无法获得 $ expiry

的价值

当我点击提交按钮时,只有$ expiry值可见。 这是什么解决方案?

1 个答案:

答案 0 :(得分:1)

您的表单需要先在选项表中保存$expiry。为此,使用一个操作(例如:admin_init,如果表单在管理端验证)可以触发此代码,

 add_action('admin_init', 'save_expiry');

 function save_expiry(){

     if(isset($_POST['expiry']){
         update_option('from_value[expiry]', $_POST['expiry']);
     }
 }

然后,在cron_schedules过滤器中,您将能够获得选项值。

$settings = get_option('from_value');
$expiry = (!isset($settings['expiry']) && $settings['expiry']=='')? 'daily' : $settings['expiry'];