自动完成WooCommerce订单

最模板 2022-07-10 15:43 WooCommerce教程

默认WooCommerce 仅自动完成仅包含虚拟可下载产品的订单。所有其他订单必须手动标记为完成。但是,如果您的商店有很多不需要任何处理的订单,那么每天必须手动完成大量订单可能会成为一项非常耗时的任务!

 

幸运的是,WooCommerce 为您提供了一个钩子,用于通过向您的网站添加代码片段来自动完成订单。如果您不习惯将自定义代码添加到您的网站,您还可以使用 WooCommerce 订单状态控制插件轻松自动完成订单。但回到代码片段,让我们看几个使用示例。woocommerce_payment_complete_order_status 挂钩的所有示例,以便您仅自动完成实际已付款的订单(如 PayPal、Stripe 等),而不是需要您手动验证已收到付款的订单(如 BACS 和支票)

 

1,自动完成所有订单

 

首先,让我们看看如何让所有订单(无论内容如何)在付款后自动完成。只需使用以下代码片段:

 

 

add_action( 'woocommerce_payment_complete_order_status', 'zuimoban_auto_complete_paid_order' );
function zuimoban_auto_complete_paid_order() {
    return 'completed';
}

 

现在每个订单都将在付款后自动完成。

 

2, 仅自动完成虚拟订单

要自动完成仅包含虚拟产品的订单,请使用以下代码段:

 

 

add_action( 'woocommerce_payment_complete_order_status', 'zuimoban_auto_complete_virtual_order', 10, 2 );
function zuimoban_auto_complete_virtual_order( $status, $order_id ) {   
    $order = wc_get_order( $order_id );
    $order_items = $order->get_items();  
    foreach ( $order_items as $item ) {
        $product = $item->get_product();
        if ( ! $product->is_virtual() ) {
            break;
        }
        $status = 'completed';
    }   
    return $status;
}

 

现在如果订单只包含虚拟产品,它将自动完成。如果订单包含虚拟产品和非虚拟产品的混合,则不会自动完成。

 

3,自动完成特定产品的订单

要自动完成仅包含特定产品的订单,请使用以下代码段替换产品 ID:

 

 

add_action( 'woocommerce_payment_complete_order_status', 'zuimoban_auto_complete_specific_products_order', 10, 2 );
function zuimoban_auto_complete_specific_products_order( $status, $order_id ) { 
    $order = wc_get_order( $order_id );
    $product_ids = array( // Replace the numbers below with the IDs of the products you want to auto-complete. You can have as many or as few products as you like!
        10,
        18,
        28,
        46,
    );
    $order_items = $order->get_items();
    foreach ( $order_items as $item ) {
        $product_id = $item->get_product_id();
        if( ! in_array( $product_id, $product_ids ) ){
            break;
        }
        $status = 'completed';
    }   
    return $status;
}

 

现在,当订单仅包含您列出的产品时,它将自动完成。如果订单包含列表中的产品和不在列表中的产品,则不会自动完成。

相关文章

  1. 在WooCommerce产品页面上显示销售总数

    让客户知道产品的受欢迎程度确实有助于转化。一种方法是在产品页面上显示产品已售出的次数。WooCommerce 已经记录了产品的销售次数,因此在产品页面上显示这些数据非常容易。 woo...

    2022-07-10
  2. 为注销的用户重命名WooCommerce我的帐户菜

    在您的 WooCommerce 商店中,您可能会有一个指向我的帐户页面的菜单链接。通常,无论用户是否登录,此链接都会显示我的帐户。但是,如果我们想让它为注销的用户说一些更有用的东西...

    2022-07-10
  3. 按国家地区禁用WooCommerce支付网关

    如果您使用 WooCommerce 向多个国家/地区销售商品,您可能需要阻止来自某些国家/地区的客户使用特定的支付网关。例如,您可能只想向美国客户提供 PayPal。或者您可能希望阻止澳大利亚...

    2022-07-10
  4. 变量$order获取WooCommerce订单信息

    在WooCommerce我怎样才能得到订单总额或者我怎样才能得到订单物品或者可能是订单 ID、客户 ID、账单信息、付款方式、总退款等等,使用变量$order可以获取。可能有 $order_id 可用。在这种...

    2022-04-15
  5. 使用$product获取WooCommerce产品信息ID、S

    在WooCommerce中,使用变量$product 如何获取产品 SKU或者我怎样才能得到产品的简短描述或者可能是产品库存水平、运输等级、税收等级、价格、正常价格、销售价格等等.并非总是可以访问...

    2022-04-15
  6. 在WooCommerce列表页显示商品品牌

    安装好WooCommerce Brands 插件网站将显示品牌分类,商品也会出现品牌链接,但是商品列表页如何也显示商品品牌呢?仅将这些添加到单个产品页面中。 在woomcomerce当中添加以下代码: ad...

    2022-04-15
  7. 在 WooCommerce中自定义地址格式

    每个国家都有不同的地址格式,例如,美国使用缩写的州名,而澳大利亚通常显示完整的州名。这些不是一成不变的规则,它们总是可以改变的。如何 ? 通过当然是自定义代码: 此代码...

    2022-07-26
  8. 在WooCommerce单个产品图像上禁用缩放、灯

    如果WooCommerce您不销售具有大量细节的高端产品,您的客户可能不需要直接放大您的产品图像的能力。而且,如果您不上传高分辨率图像,那么缩放功能就毫无用处。这同样适用于灯箱和...

    2022-07-10
  9. 在WooCommerce添加产品视频代替图片

    WooCommerce 不允许您添加产品视频,但是我们可以用几行代码添加它,不需要第三方插件。 WooCommerce 产品图片用于说明您的产品,但有些产品需要视频才能更好地展示它们。在这里,我将...

    2022-04-04
  10. 在WooCommerce中重命名国家地区

    如果您想在WooCommerce中重命名一个国家/地区,只需向您的网站添加代码片段即可。以下示例将Ireland更改为Republic of Ireland: add_filter( woocommerce_countries, snippetpress_rename_countries );function sni...

    2022-07-10