プラグインWooCommerceのwoocommerce_product_bulk_and_quick_editアクションの使用方法・解説

概要

woocommerce_product_bulk_and_quick_edit アクションは、WooCommerceの商品をバルク編集やクイック編集する際に、追加のフィールドを表示したり、既存のデータを処理するために使用されます。このフックは、特に商品管理画面での効率的な商品編集をサポートする機能として活用されます。このフックは以下のような機能を実装する際によく使われます。

  1. 商品のカスタム属性の一括編集中に、追加のフィールドを表示する。
  2. クイック編集時に、特定のメタデータを更新する。
  3. 商品の在庫状況を一括で変更する。
  4. 商品の価格を一括で調整できるインターフェースを追加する。
  5. 商品のカテゴリやタグをまとめて変更する。
  6. プロモーションや割引情報を一度に設定する。

構文

do_action( 'woocommerce_product_bulk_and_quick_edit' );

パラメータ

  • $post_id : 編集対象の商品のID(オプション)。

戻り値

  • 戻り値はありません。このアクションは、主に他の関数が実行されるごとに追加の処理を実行するために使用されます。

互換性

  • WooCommerce のバージョン: 5.0以降
  • WordPress のバージョン: 5.0以降

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード1: バルク編集にカスタムフィールドを追加

add_action( 'woocommerce_product_bulk_and_quick_edit', 'add_custom_bulk_edit_field' );

function add_custom_bulk_edit_field() {
    echo '<div class="inline-edit-group">';
    echo '<label class="alignleft">';
    echo '<span class="title">カスタムフィールド</span>';
    echo '<input type="text" name="custom_field" value="" />';
    echo '</label>';
    echo '</div>';
}

このコードは、バルク編集の画面にカスタムフィールドを追加します。

サンプルコード2: クイック編集時のメタデータ更新

add_action( 'woocommerce_product_bulk_and_quick_edit', 'quick_edit_custom_metadata' );

function quick_edit_custom_metadata( $product ) {
    ?>
    <div class="inline-edit-group">
        <label class="alignleft">
            <span class="title">特別価格</span>
            <input type="text" name="special_price" value="<?php echo esc_attr( get_post_meta( $product->get_id(), '_special_price', true ) ); ?>" />
        </label>
    </div>
    <?php
}

このコードは、クイック編集時に特別価格を表示し、編集するためのフィールドを追加します。

サンプルコード3: 一括で在庫状況を変更

add_action( 'woocommerce_product_bulk_and_quick_edit', 'bulk_edit_stock_status' );

function bulk_edit_stock_status() {
    ?>
    <div class="inline-edit-group">
        <label class="alignleft">
            <span class="title">在庫状況</span>
            <select name="bulk_stock_status">
                <option value="instock">在庫あり</option>
                <option value="outofstock">在庫切れ</option>
            </select>
        </label>
    </div>
    <?php
}

このコードは、商品の在庫状況を一括で変更するためのセレクトボックスを追加します。

サンプルコード4: 一括価格調整用フィールド

add_action( 'woocommerce_product_bulk_and_quick_edit', 'bulk_edit_price' );

function bulk_edit_price() {
    ?>
    <div class="inline-edit-group">
        <label class="alignleft">
            <span class="title">価格調整</span>
            <input type="number" name="bulk_price_adjustment" value="" />
        </label>
    </div>
    <?php
}

このコードは、商品価格を一括で調整するための数値入力フィールドを提供します。

サンプルコード5: カテゴリ一括変更用セレクトボックス

add_action( 'woocommerce_product_bulk_and_quick_edit', 'bulk_edit_categories' );

function bulk_edit_categories() {
    $categories = get_terms( 'product_cat', array( 'hide_empty' => false ) );
    ?>
    <div class="inline-edit-group">
        <label class="alignleft">
            <span class="title">カテゴリ</span>
            <select name="bulk_product_category">
                <?php foreach ( $categories as $category ) : ?>
                    <option value="<?php echo esc_attr( $category->term_id ); ?>"><?php echo esc_html( $category->name ); ?></option>
                <?php endforeach; ?>
            </select>
        </label>
    </div>
    <?php
}

このコードは、複数の商品に対して一括でカテゴリを変更できるセレクトボックスを追加します。

この関数について質問する


上の計算式の答えを入力してください