目前,该功能将通过管理端/插件文件夹上的按钮完成,没有任何问题。
产品信息按预期更新,但图像仅通过 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.
权限是管理功能未按预期工作的原因。从技术上讲,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 运行管理功能。