如何在WooCommerce订单编辑屏幕中禁用或删除库存备注

时间:2016-05-02 17:08:15

标签: php wordpress woocommerce

我在我的WooCommerce商店启用了库存管理,因为我们销售在仓库中库存的实物商品和产品至关重要。关于库存管理的一切都按照我们的需要进行,但由于我们启用了它,我们会在WooCommerce的编辑订单屏幕上显示额外的订单备注。这导致额外的数据被保存到我们的数据库中,并且基于QuickBooks作为我们不需要的订单备注。

我在核心WooCommerce中发现了添加此订单备注的功能,我只是不确定如何在不修改核心文件的情况下删除它。我正在寻找某种方法来禁用或删除它,可以放在我的网站实用程序插件中的钩子,过滤器或类扩展。 Screenshot showing sidebar of Edit Order screen with numerous "stock reduced" messages displayed

代码位于abstract-wc-order.php文件(/woocommerce/abstracts/abstract-wc-order.php),从第2460行开始:

if ( isset( $item['variation_id'] ) && $item['variation_id'] ) {
                        $this->add_order_note( sprintf( __( 'Item #%s variation #%s stock reduced from %s to %s.', 'woocommerce' ), $item['product_id'], $item['variation_id'], $new_stock + $qty, $new_stock) );
                    } else {
                        $this->add_order_note( sprintf( __( 'Item #%s stock reduced from %s to %s.', 'woocommerce' ), $item['product_id'], $new_stock + $qty, $new_stock) );
                    }

1 个答案:

答案 0 :(得分:0)

您可以通过wp_insert_comment操作挂钩获取评论ID和内容并将其删除,这可能会阻止将其发送到Quickbooks。使用"stock reduced from"的简单匹配匹配,我们可以检查评论是否用于减少库存。

add_action('wp_insert_comment', 'remove_stock_comment', 10, 2);

function remove_stock_comment($id, $comment) {
    if( strpos($comment->comment_content, 'stock reduced from') !== false ) {
        wp_delete_comment( $id );
    }
}

要进一步检查评论是否属于某个订单,您可以获取评论的POST ID并检查其post_type

注意:我不确定这个解决方案是否会破坏任何其他功能,但这是我能想到的唯一解决方案。