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

时间:2019-01-12 00:53:24

标签: php wordpress woocommerce wordpress-rest-api woocommerce-rest-api

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

当我使用wordpress woocommerce rest api 发布数据时,它会多次发布数据,并且会不断循环发布,就像无限循环一样。

(获取,删除,放入操作正常)

代码:

$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();
    }

唯一的问题是帖子被调用,并一次又一次地填充数据库。

1 个答案:

答案 0 :(得分:0)

这段代码是如何挂钩的?它附加到哪个动作?通常,当您运行的代码触发了您所钩住的代码时,即会钩住您的代码:

add_action('save_post', 'my_example_function');

和您的代码触发器:

do_action('save_post');

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

从WP文档中阅读本节:https://codex.wordpress.org/Plugin_API/Action_Reference/save_post#Avoiding_infinite_loops