概要
woocommerce_product_importer_formatting_callbacks
は、WooCommerceにおいて製品インポート時のデータフォーマットをカスタマイズするために使用されるフィルターフックです。このフィルタを使用することで、インポートする製品データの整形処理を操作することができます。具体的には、ユーザーがCSVファイルを使用して製品をインポートする際に、データの前処理や変換を行うことができます。
このフィルタは以下のような機能を実装する際によく使われます:
- カスタム商品属性のマッピング
- 特定フォーマットのデータの変換(例:日付形式の変換)
- 複数言語に対応するためのデータ整形
- 特殊文字のエスケープ処理
- デフォルト値の設定
- カスタム価格計算ロジックの実装
構文
add_filter( 'woocommerce_product_importer_formatting_callbacks', 'your_custom_function' );
パラメータ
$callbacks
: コールバック関数の配列(デフォルトの整形処理が含まれています)。
戻り値
- 配列 : 整形後のコールバック関数の配列。
使用可能なプラグインWooCommerceのバージョン
- WooCommerce 3.0以降
ワードプレスのバージョン
- WordPress 4.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_filter( 'woocommerce_product_importer_formatting_callbacks', 'custom_date_format' );
function custom_date_format( $callbacks ) {
$callbacks['date'] = function( $date ) {
return date( 'Y-m-d', strtotime($date) );
};
return $callbacks;
}
このコードは、インポートされる日付が’Y-m-d’形式に変換されることを示しています。
サンプル2: 特殊文字のエスケープ
このサンプルでは、インポートするデータ中の特殊文字をエスケープする処理を追加します。
add_filter( 'woocommerce_product_importer_formatting_callbacks', 'escape_special_characters' );
function escape_special_characters( $callbacks ) {
$callbacks['name'] = function( $name ) {
return htmlspecialchars($name);
};
return $callbacks;
}
このコードは、商品名に含まれる特殊文字をHTMLエスケープして保護します。
サンプル3: デフォルト値の設定
このサンプルは、特定のフィールドにデフォルト値を設定するためのコールバックを示します。
add_filter( 'woocommerce_product_importer_formatting_callbacks', 'set_default_price' );
function set_default_price( $callbacks ) {
$callbacks['price'] = function( $price ) {
return !empty($price) ? $price : 10; // デフォルト価格を10に設定
};
return $callbacks;
}
このコードは、価格が空であればデフォルトとして10を設定します。
サンプル4: カスタム商品属性のマッピング
このサンプルでは、カスタム属性の値をインポートする際のマッピングを行います。
add_filter( 'woocommerce_product_importer_formatting_callbacks', 'map_custom_attributes' );
function map_custom_attributes( $callbacks ) {
$callbacks['custom_attribute'] = function( $value ) {
return ($value == 'old_value') ? 'new_value' : $value; // 古い値を新しい値に変換
};
return $callbacks;
}
このコードは、古いカスタム属性の値を新しい値に変換します。
サンプル5: 価格計算ロジック
このサンプルは、インポート時の価格をカスタムロジックで計算します。
add_filter( 'woocommerce_product_importer_formatting_callbacks', 'custom_price_calculation' );
function custom_price_calculation( $callbacks ) {
$callbacks['price'] = function( $price ) {
return floatval($price) * 1.2; // 価格に20%を上乗せ
};
return $callbacks;
}
このコードは、インポートされた価格に20%のマージンを追加します。