WooCommerceプラグインの究極ガイドとコード解説:インストールからカスタム開発まで

3分で読了
2026-03-16
2026-06-04
2,735
以下のリンクからお買い物をしていただくと、コミッションを差し上げます。.

WooCommerceのインストールと基本設定

WooCommerceのインストール手順は簡単ですが、正しい初期設定は安定したeコマースサイトを構築するための基盤となります。まず、PHP 7.4以上を実行しており、WordPressがインストールされているサーバー環境が必要です。WordPressの管理画面(ダッシュボード)の「プラグイン」>「プラグインをインストール」ページで「WooCommerce」を検索し、インストールして有効化してください。有効化すると、システムが自動的に「設定ガイド」を開始し、ストアの基本設定を完了するための手順を案内してくれます。

在设置向导中,您需要依次完成:设置商店所在地、货币和单位;配置支付方式(如PayPal、Stripe或银行转账);设置运费计算规则(如免费送货、固定运费或基于重量/地址的实时费率);并推荐安装一些必要的扩展,如 WooCommerce Payments 或本地化插件。完成向导后,您会进入 WooCommerce 的核心设置面板。这里有几个关键部分需要仔细配置:“常规”选项中可设置销售地点和税率计算;“产品”选项中可定义度量单位、商品评论和库存管理;“结账”页面是配置所有支付网关和结账流程的地方;“配送”选项则用于管理发货区域、方法和包装。

よく見過ごされがちですが、非常に重要なステップがあります。それはパーマリンクの設定です。WordPressの「設定」>「固定リンク」で、「シンプル」な構造を使用しないように注意してください。代わりに「記事名」やカスタム構造を使用することをお勧めします。これは商品ページのSEOに役立ちます。また、WooCommerceの「高度な設定」タブでは、ショッピングカート、チェックアウト、マイアカウントなどの各ページに対応するWordPressページを割り当てる必要があります。これらのページはプラグインのインストール時に自動的に作成されます。

推薦図書 WooCommerceカスタマイズ開発ガイド:入門から上級までの完全な実践トレーニング

店舗基本情報の設定

店舗の基本情報の設定は、主にWordPressのカスタマイザーやWooCommerceの標準設定で行われます。店舗の住所、カスタマーサービス用のメールアドレス、電話番号を正確に入力することが重要です。これらの情報は、注文通知、請求書、ページのフッターなどに表示されます。さらに、「標準」設定の「通貨オプション」では通貨の表示形式を設定できます。例えば、人民元(¥123.00)やアメリカドル($123.00)などです。

UltaHostのWordPressホスティングサービス
30日間の返金保証、無制限の帯域幅とデータベースサービス、無料のDDoS防御機能が付きます。3年契約をすると、501TPから4Tまでのプランで割引が適用されます。

支払いおよび配送ゲートウェイの統合

支払いゲートウェイはeコマースにとって生命線です。WooCommerceにはPayPal、Stripe、BrickPayなど、さまざまな支払い方法が組み込まれています。 WC_Gateway_BACS(銀行振込)WC_Gateway_CHEQUE(小切手による支払い)と WC_Gateway_COD(商品到着時に支払いを行う)。StripeやPayPalなどの高度な決済ゲートウェイを利用するには、通常、専用のプラグインをインストールし、APIキーを設定する必要があります。例えばStripeを設定する場合、対応する設定ページで公開キーと秘密キーを入力する必要があります。

配送設定も同様に重要です。『配送エリア』では、異なる国や地域ごとに個別の送料ルールを設定することができます。例えば、中国大陸に専用のエリアを作成し、「無料配送」、「統一料金」、「店舗での受け取り」など、さまざまな配送オプションを追加することができます。 woocommerce_shipping_init フック(hook)を利用することで、開発者は完全にカスタマイズされた配送方法のクラスを作成することもできます。

核心機能とデータ管理

WooCommerceは、すべての電子商取引データをWordPressのカスタム記事タイプおよびカテゴリシステムに統合しています。商品は以下のように保存されます: product 記事の種類(Article Type)、そして注文(Order)に対応しています。 shop_order 記事の種類(Article Types)。このデータモデルを理解することは、高度なカスタマイズ開発を行うための前提条件です。

製品管理は、すべての中で最も重要な要素です。WooCommerceでは、以下の4種類の製品タイプをサポートしています:simple(シンプルな製品)grouped(グループ製品)external(外部/関連製品)および variable(変動製品)変動製品を使用すると、同じ商品に対して異なる属性(色、サイズなど)やそれに対応する価格、在庫状況、SKUを設定することができます。商品をバックエンドで編集する際には、在庫SKU、価格、在庫状態、配送情報、関連する商品画像ライブラリを管理するための一連のメタデータフォームを使用します。

推薦図書 WooCommerceとは何か、そのコアアーキテクチャはどのようなものか。

订单管理后台提供了完整的销售概览。每个订单都是一个包含丰富元数据的 shop_order この投稿には、顧客情報、購入した商品、価格、支払い状況、および注文の備考履歴が記録されています。状態管理は非常に重要であり、デフォルトの状態には以下のものが含まれます: pending(支払いを待っています)processing(処理中)on-hold(一時停止)そして completed(完了です)。ご利用いただけます。 wc_get_order_statuses この関数はすべての状態を取得し、それに基づいて処理を行います。 woocommerce_register_shop_order_post_statuses フィルターの登録におけるカスタム状態。

製品タイプと属性の管理

製品属性は、複雑な商品カタログを整理するための強力なツールです。「製品」>「属性」のセクションで、「色」や「サイズ」などのグローバル属性を作成することができます。その後、変動する製品を編集する際にこれらの属性を使用して「属性コンビネーション」を作成し、「赤色-Lサイズ」のような各コンビネーションに対して個別のバリアントデータを設定します。コードレベルでは、以下のように処理を行うことができます: WC_Product_Variable クラスとその… get_available_variations() すべてのバリアント情報を取得し、操作するための方法。

注文および顧客データの処理

WooCommerceの使用方法 WC_Order オーダーデータをカプセル化するためのクラスを使用します。このクラスを通じて、プログラム的にオーダーを作成したり更新したりすることができます。例えば、以下のコードは新しいオーダーを作成し、商品を追加する方法を示しています:

hosting.com 共有ホスティング
AMD EPYC CPU、NVMe SSDストレージ、LiteSpeedによる高いパフォーマンス、24時間365日の専門家による社内サポート、SSL、ブルートフォース、マルウェア、DDoS保護などの高度なセキュリティ対策、最大73%のコスト削減
// 创建一个新订单对象
$order = wc_create_order();

// 通过商品ID获取商品对象并添加到订单中
$product = wc_get_product(123);
$order->add_product($product, 2); // 数量为2

// 设置客户地址
$order->set_address(array(
    'first_name' => '张',
    'last_name'  => '三',
    'email'      => '[email protected]',
    'phone'      => '13800138000',
), 'billing');

// 计算总额并保存
$order->calculate_totals();
$order->save();

顧客データはWordPressのユーザー情報とは別に管理されています。WP_User)ディープバインディング。WooCommerceはこれを通じて… wc_get_customer_order_countwc_get_customer_total_spent このような関数の拡張により、ユーザーの能力が向上します。

テーマの統合とテンプレートのオーバーライド

WooCommerceとテーマの統合度は、ストアのフロントエンド体験を大きく左右します。WooCommerceは強力なテンプレートシステムを採用しており、商品リスト、商品詳細ページ、カートなどのすべてのフロントエンド表示用のファイルは、プラグインディレクトリ内に存在します。 /templates/ フォルダ内にあります。コアプラグインファイルを変更することなくこれらのテンプレートをカスタマイズするには、それらをご自身のテーマに上書きする必要があります。

正确的方法是:在您的活动主题目录下,创建一个名为 woocommerce そのフォルダーに移動してください。次に、変更したいWooCommerceテンプレートファイルをプラグインディレクトリからこの新しいフォルダーにコピーし、そのコピーに変更を加えてください。例えば、単一の商品ページの構造を変更する場合は、該当するテンプレートファイルをコピーする必要があります。 plugins/woocommerce/templates/single-product.php 到着しました。 themes/your-theme/woocommerce/single-product.phpWooCommerceは、テーマ内にあるテンプレートファイルを優先的に読み込みます。

推薦図書 WooCommerce 絶対建設ガイド:ゼロからあなたのeコマース帝国を築く

ファイル全体をカバーするだけでなく、アクションフック(Action Hooks)やフィルターフック(Filter Hooks)を使用して、特定の場所にコンテンツを挿入したり変更したりすることもできます。例えば、woocommerce_before_single_product_summary フックは商品の概要情報の前で動作するため、カスタムのバナー広告を追加するのに理想的な位置です。

カスタムテンプレートファイルの構造

WooCommerceのテンプレートファイルは、明確な階層構造を持っています。商品一覧の表示を例にとると…archive-product.php これは店舗のメインページテンプレートであり、それが呼び出されます。 content-product.php 各商品の表示をカスタマイズするために、これらのファイルを上書きすることができます。例えば、レイアウトをグリッドやリストに変更したり、カスタムのアイコンを追加したりすることで、商品一覧の表示方法を完全に変えることができます。

インターサーバー共有ホスティング
共有ホスティング月$2.50米ドル, 最初の月$0.1米ドルプロモーションコードtryinterserver, 461クラウドアプリケーションスクリプト, 1クリックインストール.

フックを使用して機能を拡張する

フック(Hook)はWooCommerceの拡張機能の中核をなす要素です。アクションフックを利用すると、カート情報の表示後にカスタムの情報ボックスを追加するなど、コードを実行することができます。

add_action('woocommerce_after_cart_table', 'my_custom_cart_message');
function my_custom_cart_message() {
    echo '<div class="custom-notice">購入金額が500元以上の場合、送料が無料です!</div>';
}

フィルターフックスを使用すると、データを「変更」することができます。例えば、以下のように… woocommerce_add_to_cart_fragments フィルターによって、ミニショッピングカートの内容を動的に更新することができます。

add_filter('woocommerce_add_to_cart_fragments', 'update_mini_cart_count');
function update_mini_cart_count($fragments) {
    $fragments['div.cart-count'] = '<div class="cart-count">' . WC()-&gt;cart-&gt;get_cart_contents_count() . '</div>';
    return $fragments;
}

高度なカスタマイズと開発の実践

組み込み機能やフックだけではニーズを満たせない場合、より高度なカスタマイズ開発が必要になります。これには、独自の製品タイプの作成、専用の支払いや配送ゲートウェイの開発、そしてREST APIを使用して外部システムとの統合が含まれます。

カスタム製品タイプを作成するには、拡張が必要です。 WC_Product クラスです。まず、それから継承する新しいクラスを定義し、その製品タイプを登録する必要があります。例えば、「予約」という名前の製品クラスを作成します:

class WC_Product_Booking extends WC_Product {
    public function __construct($product) {
        parent::__construct($product);
        $this->product_type = 'booking';
    }
    // 在这里添加自定义方法和属性,如 get_booking_dates()
}
// 将新类注册到工厂
add_filter('woocommerce_product_class', 'register_booking_product_class', 10, 2);
function register_booking_product_class($classname, $product_type) {
    if ($product_type == 'booking') {
        $classname = 'WC_Product_Booking';
    }
    return $classname;
}

WooCommerceのREST APIは、モバイルアプリケーションや外部管理システム向けに非常に強力なインターフェースを提供しています。このAPIを使用することで、商品、注文、顧客など、ほぼすべてのデータを管理することができます。APIにアクセスするには、まずバックエンドの「WooCommerce」>「設定」>「高度な設定」>「旧版API」でAPIキー(Consumer Key)とConsumer Secretを有効にし、作成する必要があります。その後、以下のようなエンドポイントを使用して呼び出しを行うことができます:GET /wp-json/wc/v3/products 製品リストを取得するために。

カスタムゲートウェイの開発

カスタムの支払いゲートウェイとは、既存のシステムに機能を追加した拡張版のことです。 WC_Payment_Gateway これはPHPのクラスです。このクラス内で、ゲートウェイのID、タイトル、説明、支払いに関するフィールドを定義し、それらを実装する必要があります。 process_payment 支払いロジックを実現するための方法です。開発が完了した後は、以下の手順に従って処理を進める必要があります: woocommerce_payment_gateways フィルターによって、それが利用可能なゲートウェイのリストに追加されます。

外部サービスとAPIを統合する

WooCommerceは、ERP(企業資源計画システム)、CRM(顧客関係管理システム)、物流システムなどと連携するための豊富なフック(hook)を提供しています。例えば、注文状態が「完了」に変更された際には、それに応じた処理が自動的に実行されます。 woocommerce_order_status_completed アクションフックです。このフックに関数を登録することで、注文データを在庫管理システムに送信することができます。

add_action('woocommerce_order_status_completed', 'sync_order_to_erp');
function sync_order_to_erp($order_id) {
    $order = wc_get_order($order_id);
    $data = array(
        'order_id' => $order->get_id(),
        'total'    => $order->get_total(),
        // ... 准备其他数据
    );
    // 使用 wp_remote_post 将 $data 发送到外部 API
}

概要

WooCommerce 不仅仅是一个插件,更是一个功能完备、高度可扩展的电子商务开发框架。从简单的安装配置到深度的自定义开发,它通过清晰的模板系统、丰富的钩子(Actions & Filters)以及面向对象的数据模型,为开发者提供了无限的可能性。成功构建一个 WooCommerce 商店的关键在于:扎实的基础配置确保商店稳定运行;深入理解其产品、订单数据模型;熟练运用模板覆盖和钩子进行前端定制;并掌握通过自定义类、网关和API集成来满足独特业务需求的能力。遵循这些最佳实践,您将能够打造出强大、高效且完全符合业务逻辑的在线商店。

FAQ よくある質問

「加入购物车」ボタンのテキストをどのように変更するか?

を使用することができます。 woocommerce_product_add_to_cart_text フィルター、または woocommerce_product_single_add_to_cart_text フィルターを使用してボタンのテキストを変更することができます。例えば、以下のコードは単一の商品ページにあるボタンのテキストを「すぐに購入」に変更します:

add_filter('woocommerce_product_single_add_to_cart_text', 'change_single_add_to_cart_text');
function change_single_add_to_cart_text() {
    return '立即购买';
}

アーカイブページ(商品リスト)については、以下のように使用してください: woocommerce_product_add_to_cart_text フィルターを使用し、関数内で製品の種類を判断する必要があります。

特定の製品カテゴリにカスタムフィールドを追加するには、以下の手順をご参照ください:

WooCommerceの製品分類フックとWordPressの用語メタデータAPIを組み合わせて使用する必要があります。まず、以下の手順に従ってください: product_cat_add_form_fieldsproduct_cat_edit_form_fields アクションは、カテゴリの追加/編集ページで出力フィールドとして表示されます。その後、それを使用します。 created_termedit_term アクションを実行して、フィールドの値を保存します。 term_meta最後に、テンプレートファイル内でこれを使用することができます。 get_term_meta この値を取得して表示します。

なぜ私が編集したカスタムテンプレートが反映されないのでしょうか?

以下の手順で問題を調査してください。まず、テンプレートファイルを正しいテーマのパスにコピーしたかを確認してください:your-theme/woocommerce/ 下,且目录结构与原插件模板一致。其次,清除所有缓存,包括浏览器缓存、WordPress 对象缓存以及任何服务器端缓存(如OPcache)。最后,检查您的主题 functions.php WooCommerceのサポートに関する記述が正しく行われていますか?add_theme_support('woocommerce');問題が解決しない場合は、一時的にデフォルトのテーマ(例:Storefront)に切り替えて、テーマの互換性に問題がないかを確認してください。

如何编程式地创建一个 WooCommerce 可变产品?

あなたは以下のものを使用する必要があります: WC_Product_Variable クラスです。基本的な手順は以下の通りです:製品オブジェクトを作成し、基本属性を設定します;グローバル属性(例えば色)を作成して追加します;これらの属性に対して具体的な属性の組み合わせ(つまりバリエーション)を作成します;最後に、各バリエーションごとに独立したオブジェクトを作成します。 WC_Product_Variation オブジェクトには、価格や在庫などの固有の属性を設定し、メイン製品に関連付けます。これは複数のステップを要するプロセスであり、通常は以下のような手順が含まれます: wp_set_object_terms, set_attributes, 、および save などの方法です。