搜索全站
安装部署 8 分钟阅读

WooCommerce 从零搭建电商站:商品、运费、支付、订单全流程

第一次用 WooCommerce 最容易在主题兼容、运费和支付环节卡住。本文按商品、运费、支付、订单四段走完完整配置流程,附主题兼容与订单钩子代码。

U
UFO_PF 2023-06-11 · 阅读 8 分钟
Wo 安装部署
阅读提示
本文约 3,017 字,预计阅读 8 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:装完 WooCommerce,商品页排版全乱了

第一次装 WooCommerce 的人几乎都会遇到同一个画面:插件装上、向导走完、建了个测试商品,点进去一看——商品图片跑到侧边栏去了,价格字号巨大,按钮样式和全站完全不搭,侧边栏里还多出一堆没人要的筛选小工具。更糟的是结账页:地址表单还是英文默认字段,运费显示”无可用配送方式”,支付只有”货到付款”和”银行转账”。

这些都不是故障,而是 WooCommerce 的工作方式决定的:它是一个以模板和钩子为中心的插件,主题如果不主动声明兼容,它就会用自己那套 2012 年风格的默认模板。所以第一步永远是声明兼容,而不是急着加商品。

原理分析:WooCommerce 的四层配置结构

层 内容 配置位置 常见遗漏
展示层 模板、样式、图片尺寸 主题 + 自定义 未声明兼容
商品层 商品数据、库存、分类 商品编辑页 SKU 与库存未设
履约层 运费区域、税率 WooCommerce → 设置 区域未覆盖导致无法下单
资金层 支付网关、货币 WooCommerce → 设置 → 支付 未测沙箱
流程层 订单状态、邮件通知 设置 → 邮件 邮件未改默认文案

订单状态流转是整条链路的主线:pending(待付款)→ processing(处理中)→ completed(已完成),此外还有 on-hold、cancelled、refunded、failed。所有自动化都应该挂在状态变化上,而不是挂在”支付成功”这个模糊概念上。

保姆级实操

步骤 1:装插件并声明主题兼容

装 WooCommerce 后走设置向导(商店地址、货币、单位、支付)。向导结束后,如果商品页排版异常,说明主题没有声明兼容。在子主题 functions.php 里加:

add_action( 'after_setup_theme', function () {
    add_theme_support( 'woocommerce', array(
        'thumbnail_image_width' => 300,
        'single_image_width'    => 600,
        'product_grid'          => array(
            'default_rows'    => 3,
            'min_rows'        => 2,
            'max_rows'        => 8,
            'default_columns' => 3,
            'min_columns'     => 2,
            'max_columns'     => 4,
        ),
    ) );
} );

如果仍不兼容,把插件目录下 templates/ 里的文件复制到主题的 woocommerce/ 目录再修改(这是官方推荐的模板覆写方式)。改完记得去”WooCommerce → 状态 → 工具”里 regenerate 缩略图。

步骤 2:建第一个商品

商品编辑页分两块:上方是普通文章编辑区(主描述),下方是”商品数据”面板。必须填的四项:常规(价格、促销价)、库存(SKU、库存管理开关)、配送(重量、尺寸,只有按重量计费时才需要)、属性。不要跳过 SKU,后期对账和导出全靠它。

步骤 3:配置运费区域

去”WooCommerce → 设置 → 配送 → 配送区域”。这是新手最容易卡住的地方:没有覆盖客户地址所属区域的配送方式,结账时会提示”无可用配送方式”,客户无法下单。至少建一个”全国”区域并配统一运费或免邮。

步骤 4:配置支付

国内场景常用支付宝/微信(用官方或第三方支付网关插件),海外用 Stripe / PayPal。务必先在沙箱模式跑一遍完整下单,确认回调能正常把订单从 pending 变成 processing。只测”下单成功”不测”回调成功”,会漏掉最常见的丢单问题。

步骤 5:改邮件通知

“WooCommerce → 设置 → 邮件”里把所有通知的标题和正文改成自己品牌的话术,特别是”新订单”和”订单已完成”两封。默认文案是英文模板翻译来的,语气生硬。同时确认发信人名称与邮箱正确,并配好 SPF/DKIM。

步骤 6:挂订单状态钩子做自己的业务

add_action( 'woocommerce_order_status_completed', function ( $order_id ) {
    $order = wc_get_order( $order_id );
    if ( ! $order ) {
        return;
    }
    $total = $order->get_total();
    $email = $order->get_billing_email();
    // 完成后写入自有统计或触发发货流程
    error_log( sprintf( '[ORDER DONE] #%s %s %s', $order->get_order_number(), $email, $total ) );
} );

步骤 7:上线前跑一遍真实下单

清单:加购 → 改数量 → 填地址 → 选配送 → 支付(小额真实支付)→ 收到两封邮件 → 后台订单状态正确 → 退款流程可用。任何一环断了都要修完再上线。

常见踩坑

  1. 未声明 add_theme_support('woocommerce'):排版错乱,图片比例失真。
  2. 配送区域没覆盖客户地址:结账报”无可用配送方式”,是丢单的头号原因。
  3. 只测下单不测异步回调:支付平台回调没进来,钱收了订单还是 pending,不会发货。
  4. 忘了设永久链接结构:用朴素链接会导致商品页 404 和结账跳转异常。
  5. 邮件用默认发送人:WordPress <wordpress@yoursite.com> 这种发件人不专业且易进垃圾箱。
  6. 案例:某手作店的”静默丢单”:上线首月后台显示 30 多笔 pending 订单,店主以为客户没付款就没发货,实际支付平台已经扣款成功,只是回调 URL 被安全插件拦截,订单状态从未更新。修复回调白名单并对 pending 订单做了每日核对脚本后,补发了 30 多单并挽回口碑。
  7. 促销价设了却没设时间范围:促销价永久生效,等于长期降价。

总结

WooCommerce 是否配置完成,用”一条真实订单走到底”来检验:从加购到后台状态变更再到两封邮件,全程不能有人工介入。行动清单:先声明主题兼容并按需覆写模板,再建商品并填齐 SKU 与库存,然后配置覆盖全部目标地区的配送区域和至少一个经过沙箱验证的支付网关,最后改好邮件通知并用一笔真实小额订单跑通全流程。走通之后,WooCommerce 就只是一件需要日常维护的工具了。商品形态的进阶配置见 WooCommerce 商品类型与变体,履约细节见 WooCommerce 运费与税费设置。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。