我正在创建一个Cron,以使用wp_schedule_event
触发克隆订单.
当我创建一个每分钟发送邮箱测试的函数时,它就起作用了.但是,当我将该函数切换到克隆函数时,没有任何react .会出什么问题呢?
一百零二
/* create a scheduled event: every minute */
function cron_add_minute( $schedules ) {
// Adds once every minute to the existing schedules.
$schedules['everyminute'] = array(
'interval' => 60,
'display' => __( 'Once Every Minute' )
);
return $schedules;
}
add_filter( 'cron_schedules', 'cron_add_minute' );
function cronstarter_activation_weekly() {
if( !wp_next_scheduled( 'clone_order_weekly' ) ) {
wp_schedule_event(time(), 'everyminute', 'clone_order_weekly' );
}
}
add_action('woocommerce_order_action_clone_order_weekly', 'cronstarter_activation_weekly');
// unscheduled event upon plugin deactivation
function cronstarter_deactivate_weekly() {
// find out when the last event was scheduled
$timestamp = wp_next_scheduled('clone_order_weekly');
// unschedule previous event if any
wp_unschedule_event($timestamp, 'clone_order_weekly');
}
add_action('woocommerce_order_action_clone_order_stop', 'cronstarter_deactivate_weekly');
function my_repeat_function() {
// components for our email
$recepients = 'xxx@yyy.zzz';
$subject = 'Hello from your Cron Job';
$message = 'This is a test mail sent by WordPress automatically as per your schedule.';
// Send email test
mail($recepients, $subject, $message);
}
/*
* This function works well. I got an email every minute
*/
add_action ('clone_order_weekly', 'my_repeat_function');
因此,使用上面的代码,cronjob似乎工作得很好.但是,当我像这样调用克隆函数时:
/**
* Trigger Clone action from Order page
*
* @param $order
*/
function m_trigger_action_clone_order( $order ) {
$order_id = $order->get_id();
mutiara_woocommerce_order_clone($order_id);
}
add_action ('clone_order_weekly', 'm_trigger_action_clone_order', 20, 1);
什么都不会发生..未触发任何订单...我知道m_trigger_action_clone_order
是有效的,因为我把它连接到一个普通的克隆按钮上,当我点击并触发该功能时,就会创建一个新的克隆:
add_action( 'woocommerce_order_action_clone_order', 'm_trigger_action_clone_order', 20, 1 );
我错过了什么?