WordPress 插件中的 Cron 触发功能 - wc_rest_set_uploaded_image_as_attachment 不加载图像

问题描述 投票:0回答:1

目前,该功能将通过管理端/插件文件夹上的按钮完成,没有任何问题。

产品信息按预期更新,但图像仅通过 Cron 失败,抛出内部错误:

$image_url = wc_rest_upload_image_from_url( $pic_url_r,$pro_id);
$image_id1 = wc_rest_set_uploaded_image_as_attachment($image_url, $pro_id);

错误

Uncaught Error: Cannot use object of type WP_Error as array in /home/public_html/wp-content/plugins/woocommerce/includes/wc-rest-functions.php:135

thrown in /home/public_html/wp-content/plugins/woocommerce/includes/wc-rest-functions.php on line 135

错误发生在函数:

function wc_rest_set_uploaded_image_as_attachment? (dont have permission via cron)


cron 仅在我登录浏览器时才起作用,我如何才能包含这些 wp-admin 功能以供 cron 访问?.

**转储错误:**


Array ( [woocommerce_rest_invalid_image] => Array ( [0] => Invalid image: Sorry, you are not allowed to upload this file type.

php wordpress woocommerce cron
1个回答
0
投票

权限是管理功能未按预期工作的原因。从技术上讲,Cron 并未登录。解决方法是在 Cron 期间模拟具有权限的用户。在 WP 管理部分设置具有正确访问权限的用户。

步骤: 创建 cron.php 文件

命令 Cron :

*/30 * * * curl https://example.com/cron.

我们希望将 Cron.php 作为具有相同环境的网页来访问,而不是直接访问。

    //cron will need to include

    wp-config.php 
    wp-load.php

    //https://gist.github.com/digisavvy/0cd5c8023105c17679811014b9decc7d
    login(){
       myfunction();
    }

  

自动 wp 登录示例脚本在这里找到: https://gist.github.com/digisavvy/0cd5c8023105c17679811014b9decc7d

根据需要定制 cron.php 中的脚本。 功能完成后退出。

结果是从 WordPress 中的 Cron 运行管理功能。

© www.soinside.com 2019 - 2024. All rights reserved.