我正在尝试在自定义Wordpress插件中更新选项时安排事件。我知道update_option_"option_name"
并已进行了设置,但是该活动尚未安排。即使已经在寄存器设置文件中创建了设置,我什至采取了额外的步骤来创建带有add_option( 'ea_auto_update_time', '' );
的选项。预先感谢您的时间和帮助。我真的很感激人们愿意提供帮助。
function ea_wpcron_activation() {
$defaults = array( 'ea_auto_update_time' => '' );
$ea_plugin_options = wp_parse_args( get_option( 'ea_pricing_options' ), ea_product_pricing_options_default() );
$auto_update_time = sanitize_text_field( $ea_plugin_options['ea_auto_update_time'] );
if( $auto_update_time == 'hourly' || $auto_update_time == 'daily' || $auto_update_time == 'twicedaily' || $auto_update_time == 'weekly' ) {
if( ! wp_next_scheduled( 'ea_automation_queue_hook' ) ) {
wp_schedule_event( time(), $auto_update_time, 'ea_automation_queue_hook' );
if( ! wp_next_scheduled( 'ea_automation_new_hook' ) ) {
wp_schedule_event( time(), 'five_minutes', 'ea_automation_new_hook' );
}
} else {
$ea_automation_next = wp_next_scheduled( 'ea_automation_queue_hook' );
wp_schedule_event( $ea_automation_next, $auto_update_time, 'ea_automation_queue_hook' );
}
} else {
wp_clear_scheduled_hook( 'ea_automation_queue_hook' );
wp_clear_scheduled_hook( 'wpcron_activation_new' );
}
}
add_action( 'update_option_ea_auto_update_time', 'ea_wpcron_activation' );