【问题标题】:WP All Import stock ovewritteWP All Import stock overwritete
【发布时间】:2018-09-10 17:34:54
【问题描述】:

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

我确实向 WP All Import 支持发送了电子邮件,以提供一些关于使上述工作正常工作所需的指示,这是他们的:

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

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

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    解决方案就在您面前。

    方法:

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

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

      函数 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”字段。

    Rest 函数将计算并为您完成所需的工作。

    【讨论】:

    • 非常感谢您的回复。由于某种原因,上述方法没有奏效。我确实雇了人来帮我解决这个问题,我会在完成后发布他们的解决方案。我很欣赏上面的内容,它看起来很有希望并且很有意义。不知道为什么它不起作用。
    • 解决方案是什么?
    【解决方案2】:

    我也有同样的需求。但是尝试使用 wp all import "orders" 选项来管理它。从 wp all import 导入新订单时,库存不会改变。但是 WP all import support 给了我这个添加到设置中的功能:

    <?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

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

    【讨论】:

      【解决方案3】:

      这是工作代码:

      add_action('pmxi_saved_post', 'post_saved', 10, 1);
      
      function 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);
      
      }
      

      更多信息:https://wordpress.stackexchange.com/questions/313782/wp-all-import-update-stock-quantity-from-multiple-xml-files/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-12
        • 2018-02-19
        • 1970-01-01
        • 1970-01-01
        • 2021-12-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多