多个帖子由WooCommerce Rest API $ woocommerce-> post(“products”,$ data);

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

我刚开始使用wordpress,woocommerce和woocommerce rest API。这是我无法弄清楚的原因。

当我使用wordpress woocommerce rest api发布数据时,它会多次发布并一次又一次地发布,就像一个无限循环。

(Get,Delete,Put工作正常)

码:

$product_to_be_duplicated = $woocommerce->get('products/' . $id_to_be_dulpicated);
$duplicated_product = json_decode(json_encode($product_to_be_duplicated), true);
$dup_description = "duplicate of " . $duplicated_product['description'];        
    $dup_tags = array_merge($duplicated_product['tags'], [['id' => $tag_id, 'name' => $tag_name, 'slug' => $tag_slug]]);
    array_shift($duplicated_product);
    $duplicated_product['description']= $dup_description;
    $duplicated_product['tags'] = $dup_tags;
    $duplicated_product['catalog_visibility'] =  'hidden';
    try
    {
        $woocommerce->post('products', $duplicated_product);//the problem statement
    }
    catch (HttpClientException $e) 
    {
        print_r($e->getMessage());
        exit();
    }

唯一的问题是邮件被调用并一次又一次地填充数据库。

php wordpress woocommerce wordpress-rest-api woocommerce-rest-api
1个回答
0
投票

这段代码是如何吸引的?它附加了哪些动作?很多时候,当您连接的代码被您运行的代码触发时,就会发生这样的事情,即您已经联系到:

add_action('save_post', 'my_example_function');

和你的代码触发:

do_action('save_post');

在您的示例中,由于您正在复制产品,因此保存该产品将触发save_post操作,该操作会再次调用您的代码,从而启动您的无限循环。

从WP docs:https://codex.wordpress.org/Plugin_API/Action_Reference/save_post#Avoiding_infinite_loops上阅读本节

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