2016-11-27 84 views
0

我添加自定義的時間間隔如下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') 
    ); 
} 

在這種情況下,我得到的價值$到期值

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') 
    ); 
} 

我無法得到的價值$屆滿

當我點擊提交按鈕twise時,只有$ expiry值是可見的。 這是什麼解決方案?

回答

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']; 
相關問題