Mastering the Core Features of WooCommerce: A Comprehensive Guide to Orders, Payments, and Shipping Settings

3-minute read
2026-03-15
2026-06-03
2,455
I earn commissions when you shop through the links below, at no additional cost to you.

The core of WooCommerce order management

Orders are the lifeblood of a WooCommerce store, and its management interface is the core hub for merchants to handle customer transactions. On the “WooCommerce” > “Orders” page in the WordPress backend, you can view a list of all orders. Each order is clearly displayed with its status, customer information, total order amount, and time of placement.

The order status is crucial for the management process. WooCommerce comes with a variety of built-in order statuses, such as…pending(Pending processing)processing(Processing…)completed(Completed) Andcancelled(Canceled.) These status updates not only help you track the progress of your orders but also automatically trigger corresponding notification emails for customers. By clicking to enter the details page of an individual order, you can perform a range of actions: update the order status, add notes to the order (with the option to notify the customer or not), manually send invoices, and manage order items (such as refunding partially purchased products).

Processing refunds and partial returns

When customers request a refund or return, WooCommerce provides a detailed and efficient way to handle these requests. On the Order Details page, in the “Order Items” section, you can find the “Refund” option. The system allows you to issue a full refund or a partial refund, which means you can refund only a specific product or a certain amount of money.

Recommended Reading Unleashing the Potential of WooCommerce: A Comprehensive Guide to Building an Efficient E-commerce Website from Scratch

When processing a refund, you have the option to decide whether to return the inventory to the warehouse (by checking the “Return inventory?” option) and whether to automatically refund the customer through the original payment gateway (if the payment extension supports this feature). This ensures the accuracy of financial records and the synchronization of inventory management. All refund transactions are clearly displayed in the order timeline for easy auditing later on.

UltaHost WordPress Hosting
30-day refund guarantee, unlimited bandwidth and database usage, free DDoS protection; purchase for 3 years and get a discount of 50%.

Custom order statuses and workflows

For stores with specific business processes, the built-in order status options may not be sufficient. In such cases, you can add custom order statuses using code or plugins. For example, you could add a new status to represent a particular phase of the order processing.ready-for-pickup(Ready for pickup) Status.

This is usually achieved by using…register_post_statusThe function is used in conjunction with WooCommerce filters (such as…)wc_order_statusesThis can be achieved using the following code example, which demonstrates how to add a custom status:

add_action( 'init', 'register_custom_order_status' );
function register_custom_order_status() {
    register_post_status( 'wc-ready-pickup', array(
        'label'                     => '待自提',
        'public'                    => true,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               =&gt; _n_noop( '待自提 <span class="count">(%s)</span>', 'To be picked up by the customer' <span class="count">(%s)</span>' )
    ) );
}

add_filter( 'wc_order_statuses', 'add_custom_status_to_list' );
function add_custom_status_to_list( $order_statuses ) {
    $order_statuses['wc-ready-pickup'] = '待自提';
    return $order_statuses;
}

Integrating a variety of payment gateways

Payment is a crucial step in the complete cycle of e-commerce transactions. WooCommerce supports a variety of payment methods by default, including bank transfers (BACS), check payments, and cash on delivery (COD). You can enable and configure these basic payment methods in the “WooCommerce” > “Settings” > “Payment” tab.

However, to accept mainstream payment methods such as credit cards, Alipay, or WeChat Pay, you need to integrate with third-party payment gateways. There are numerous official and third-party payment extensions available on the market, including Stripe, PayPal, Square, as well as plugins specifically designed for the Chinese markets (Alipay and WeChat Pay). After installing and activating the relevant payment gateway plugin, it will usually appear in the payment settings list. You will then need to configure key parameters such as the API key and merchant ID according to the information provided by the service provider.

Recommended Reading A Complete Guide to Setting Up and Optimizing WooCommerce: Building a Professional Online Store

Configure payment gateway parameters

To configure a typical Stripe gateway, you need to go to its settings page and enter the necessary information that can be made publicly available.Publishable keyand secretSecret keyIn addition, you need to configure the Webhook endpoint. This is a secure channel through which the payment gateway can asynchronously notify your website of the payment outcome (whether the payment was successful or failed). Properly setting up the Webhook is crucial to ensure that the order status is automatically updated based on the actual payment result, preventing paid orders from still being displayed as “Pending”.

Handling payment callbacks and security

Payment callback handling is a key focus in development. The payment gateway classes in WooCommerce (such as…)WC_Payment_GatewayIt provides a standard method for handling the server’s IPN (Instant Payment Notification) or webhook callbacks. You need to ensure that the callback processing function (which is usually located in a gateway class) is properly implemented.check_responseOrwebhook_handlerThe method can verify the legitimacy of the request source (for example, through signature verification) and securely update the corresponding order status.

In terms of security, make sure your website uses HTTPS, and that all sensitive information such as API keys is properly stored; do not include them in the version control system.wp-config.phpIt is recommended to use environment variables or specialized key management plugins for this purpose.

hosting.com Shared Hosting
High performance with AMD EPYC CPUs, NVMe SSD storage and LiteSpeed, 24/7, 24x7 expert in-house support, advanced security measures including SSL, brute force, malware and DDoS protection, savings of up to 73%

Building flexible freight calculation rules

The shipping settings directly affect customers“ purchasing decisions and your operating costs. The shipping zones feature in WooCommerce is what makes it so flexible. In ”WooCommerce“ > ”Settings“ > ”Shipping“, you can create different shipping zones (for example: ”Mainland China“, ”Free Shipping for Jiangsu, Zhejiang, and Shanghai“, ”International Shipping”). You can set separate shipping calculation methods for each zone.

Within each delivery area, you can add multiple “delivery methods.” The most commonly used methods include:
* 统一费率:对区域内的所有订单收取固定费用。
* 免费配送:可以设置最低订单金额或优惠券等条件。
* 本地取货:允许客户线下自提。
* 基于重量/价格的运费:根据订单总重或总额计算动态运费。

Set shipping fees based on weight or the total quantity of items.

For scenarios that require precise calculations, such as in the logistics industry for delivery services, you can use either the “weight-based shipping fee” or the “price-based shipping fee” method. You need to first set the weight or dimensions for each product on the “Shipping” tab of the product editing page.

Recommended Reading How to customize the fields on the checkout page using WooCommerce plugins

Then, add “weight-based shipping costs” to the shipping methods and configure a rate table. For example:

1:10, 5:20, 10:30, *:40

This example shows that the charges are as follows: for a weight of 0-1 kg, the fee is 10 yuan; for 1-5 kg, the fee is 20 yuan; for 5-10 kg, the fee is 30 yuan; and for more than 10 kg, the fee is 40 yuan. The asterisk (*) represents “all other cases”.

InterServer Shared Hosting
Shared hosting $2.50 USD per month , first month $0.1 USD promo code tryinterserver, 461 cloud apps scripts, one click install.

Using advanced shipping plugins and conditional logic

When the built-in shipping options cannot meet complex requirements—such as the need to categorize shipping costs by city/postcode, support real-time pricing from multiple logistics companies, or set up extremely detailed free-shipping conditions—it becomes necessary to use advanced shipping plugins. For example,Table Rate ShippingClass plugins allow you to create multi-dimensional condition tables based on factors such as price, weight, quantity, product category, and even attributes of items in the shopping cart, offering virtually unlimited configuration possibilities.

Another common requirement is to apply conditional logic based on the contents of the shopping cart. For example, “When the shopping cart contains product category A, the fixed shipping fee is 15 yuan.” This can usually be achieved by writing custom code snippets that utilize…woocommerce_package_ratesThis is achieved using a filter hook. This hook allows you to dynamically modify or remove the returned rate options after the freight calculation has been completed.

Advanced Features and Automation Extensions

After mastering the core functions, efficiency can be greatly improved through the use of automated tools and advanced customization. The automation of order processing and workflows in WooCommerce is a key focus for more advanced applications.

Using action and filter hooks

WooCommerce provides a wealth of Action and Filter hooks, allowing developers to insert custom code at critical moments. For example, you can use…woocommerce_order_status_changedThis action hook automatically executes a specific task whenever the order status changes (for example, from “In Progress” to “Completed”). The task could be something like sending a Slack notification to the internal team or triggering a synchronization process with an external ERP system.

add_action( 'woocommerce_order_status_changed', 'sync_order_to_erp', 10, 4 );
function sync_order_to_erp( $order_id, $old_status, $new_status, $order ) {
    if ( $new_status == 'completed' ) {
        // 调用API将订单信息同步到您的ERP系统
        // wp_remote_post( 'your-erp-api-endpoint', $args );
    }
}

Integrating inventory with a CRM system

For larger stores, integrating WooCommerce with an Inventory Management System (IMS) or a Customer Relationship Management (CRM) system is an inevitable choice. This is typically achieved in the following ways:
1. 使用专用集成插件:许多主流CRM和ERP平台(如Salesforce、HubSpot、Odoo)提供了官方的WooCommerce连接器。
2. 利用中间件平台:使用Zapier、Make(原Integromat)或n8n等自动化工具,通过Webhook连接不同系统,无需编写代码即可设置“当有新订单时,在Google Sheets中创建一行记录”这样的自动化流程。
3. 定制API开发:对于高度定制化的需求,可以直接使用WooCommerce REST API。该API提供了对订单、产品、客户等数据的全面读写权限,允许您构建双向的、实时的系统同步。

summarize

Running a successful WooCommerce store goes far beyond just installing and activating the software. A thorough understanding and proficient configuration of the three core modules—orders, payments, and shipping—is essential for building a stable, efficient online business with a positive user experience. From detailed order status management to secure and reliable payment gateway integrations, to flexible shipping options that suit various business scenarios, every aspect requires careful customization. Taking it a step further, by utilizing hooks for custom development and integrating with external systems, you can automate and streamline business processes, freeing you from tedious daily tasks so you can focus on business growth and customer service.

FAQ Frequently Asked Questions

How to set up free shipping for a specific product?

You can achieve this in several ways. The simplest method is to enable the “virtual” or “downloadable” option for the product (on the “Shipping” tab of the product editing page); products with this option will not incur shipping costs. If the product is a physical item, you can use the “Shipping Category” feature. First, create a shipping category named “Free Shipping” and assign it to the specific product. Then, in the shipping settings, add a rule for the “Category-based Shipping” method, setting the shipping cost for the “Free Shipping” category to 0.

What should I do if the customer has made the payment, but the order status has not been updated?

This issue is usually caused by incorrect configuration or handling of the payment callback (Webhook/IPN). First, log in to the backend of your payment gateway provider (such as PayPal or Stripe) and check whether the Webhook endpoint URL is correctly pointing to your website and whether its status is set to “Enabled”. Next, check the payment logs in WooCommerce (if the payment gateway supports logging) for any error messages. Finally, make sure that your website is not blocking the callback requests from the payment gateway due to caching plugins or security rules.

Is it possible to create a custom freight calculation formula?

Sure. For complex calculation logic that goes beyond the built-in options, you will need to write custom code. The main approach is to use…woocommerce_before_calculate_totalsOrwoocommerce_cart_totals_before_shippingThe hook will be involved during the shopping cart calculation phase. It will calculate the shipping cost based on your business rules (such as volume-based or distance-to-destination-based criteria), and then proceed with the further processing.WC()->cart->add_fee()The function adds it as an expense. This requires a certain level of PHP development expertise.

How to export WooCommerce orders in batches?

WooCommerce comes with a basic CSV export function. You can access this feature by going to the “WooCommerce” > “Orders” page and using the “Export” button at the top of the list to export orders based on your selected filters. For more frequent, complex, or automated export needs, it is recommended to use specialized export plugins (such as “Order Export for WooCommerce”). These plugins support scheduled automatic exports, a wider range of fields to be selected, and direct exports to cloud storage. Advanced users can also retrieve order data through programming using the WooCommerce REST API.