WooCommerce:为(http)cronjob创建脚本

时间:2016-09-23 11:43:15

标签: php wordpress woocommerce

如何在WooCommerce中创建一个可以处理订单的脚本,并且可以通过外部的(http)cronjob调用?

示例:应该通过cronjob调用myshop.com/myscript。脚本本身应该能够执行以下操作:

$order = new WC_Order( $order_id );
$mailer = $woocommerce->mailer();

此代码可以在我的主题函数中使用.php。但是我如何包含" WooCommerce Core" (?)在"正常" PHP脚本或我在哪里创建一个新脚本,Core是可用的,脚本可以从外部调用?

2 个答案:

答案 0 :(得分:0)

现在我的解决方案如下:

  1. 在我的functions.php中创建一个短代码,如下所示

    function handle_orders()  {
       // handle my orders and write debug info in $r
       return $r;
    }
    
    add_shortcode('handle_orders', 'handle_orders');
    
  2. 在新页面中包含我的[handle_orders]短代码,并为其提供类似' / cronjob-handle-orders'

  3. 的网址
  4. 让(http)cronjob调用我创建的URL

答案 1 :(得分:0)

我知道这是一个老问题,但我今天晚些时候发现自己处于同样的情况,这就是我所做的:

在你的主题的functions.php中

if (isset($_GET['my_cron_call'])){
    include_once 'inc/cron.php';
    add_action('init','my_cron',11);
}

在子目录 ./inc/ 中放置您的文件 cron.php 并编写一个 my_cron 函数作为入口点。

function my_cron(){
    //do here whatever you want in a wordpress / woocommerce context
    //$order = new WC_Order( $order_id );
}

然后您可以使用您的 cron 调用您的 wp 网址:

curl https://your-wordpress.org/?my_cron_call