WP所有进口股票ovewritte

时间:2015-08-23 02:32:27

标签: php wordpress woocommerce

我目前正在使用WP All Import来导入数据(特别是库存数量)。当我导入库存数量时,它会覆盖我当前的数据,我想要它做的是更新数据。让我们说WooCommerce有5个,我的CSV表有5个,我想要添加这两个值(等于10)。

我确实通过电子邮件发送了WP All Import支持,以便提供一些指示,说明上述工作需要什么,以下是:

“如果您熟悉代码,您可以使用自定义后处理功能来完成这项工作。只需将您的股票价值导入占位符自定义字段。然后通过附加到”pmxi_saved_post“操作的函数,您将同时访问实际库存自定义字段和占位符1.添加两者的值并更新最终库存。 http://www.wpallimport.com/documentation/developers/action-reference/“;

我不知道从哪里开始。任何输入将不胜感激。

3 个答案:

答案 0 :(得分:1)

解决方案就在你面前。

<强>方法

  • 将以下函数添加到主题的functions.php文件

    add_action('pmxi_saved_post','wdm_post_saved',10,1);

    function wdm_post_saved($ id){

    $ original_stock = get_post_meta($ id,'_ stock',true);   $ new_stock = get_post_meta($ id,'_ custom_stock_placeholder',true);

    $ combined_stock = $ original_stock + $ new_stock

    update_post_meta($ id,'_ stock',$ combined_stock);

    }

  • 从信息中心添加其他自定义字段,或在使用WP ALL IMPORT时向产品中添加“_custom_stock_placeholder”。

  • 使用WP ALL IMPORT时,将新的股票价值分配给上述自定义字段,而不是原始的'_stock'字段。

休息功能将计算并为您做必要。

答案 1 :(得分:0)

我有同样的需求。但试图用wp所有导入“订单”选项来管理它。从wp导入新订单时,所有导入的库存都不会更改。但WP所有导入支持都给了我这个功能,可以添加到设置中:

<?php

add_action( 'pmxi_saved_post', 'my_update_stock', 10, 1 );

function my_update_stock( $order_id ) {

$import_id = ( isset( $_GET['id'] ) ) ? $_GET['id'] : $_GET['import_id'];

 if ( $import_id == "37" ) {
    $order = new WC_Order( $order_id );
    $items = $order->get_items();
    foreach( $items as $item ) {
        $current_stock = get_post_meta( $item['product_id'], '_stock', true );
        $new_stock = $current_stock - $item['qty'];
        update_post_meta( $item['product_id'], '_stock', $new_stock );
    }
}
}

?>

您需要更改导入ID以匹配订单导入的ID(我在此处设置37作为示例)。

它“几乎”有效。我的意思是新订单影响股票,但只影响主要产品。我的订单是关于变化产品的,并且通过这个提示,变化库存不会改变。我在这里做了一个简短的视频:

http://moroccanye.cluster011.ovh.net/stock/DEBUG_ORDER_IMPORT_SOFIA.mov

比我糟糕的英语好。如果有人有想法改进产品代码的变化产品订单,以影响变化产品库存...非常感谢。

答案 2 :(得分:0)