概要
woocommerce_customer_save_address
アクションは、WooCommerceで顧客の住所が保存される際に呼び出されるフックです。このアクションを使用することによって、住所の保存時に特定の機能を追加したり、変更を加えたりできます。主に以下のような機能を実装する際によく使われます。
- カスタムフィールドの追加
- ユーザーへの通知メールの送信
- データの監査ログの作成
- 特定の条件に基づくカスタムエラーメッセージの表示
- 他のAPIやサービスへのデータ送信
- 顧客情報の分析やレポートの生成
構文
do_action( 'woocommerce_customer_save_address', $user_id, $address, $address_type );
パラメータ
– $user_id
: アドレスが保存されるユーザーのID。
– $address
: 保存される住所情報の配列。
– $address_type
: アドレスのタイプ(例: ‘billing’ or ‘shipping’)。
戻り値
戻り値はなく、サイドエフェクトを目的としたフックです。
使用可能なバージョン
– WooCommerce: 2.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 |
サンプルコード
-
カスタムフィールドの保存
add_action('woocommerce_customer_save_address', 'save_custom_field_address', 10, 3); function save_custom_field_address($user_id, $address, $address_type) { if (isset($_POST['custom_field'])) { update_user_meta($user_id, 'custom_field', sanitize_text_field($_POST['custom_field'])); } }
- 住所保存時にカスタムフィールドの情報をユーザーのメタデータとして保存します。
-
住所保存時のメール通知
add_action('woocommerce_customer_save_address', 'notify_user_of_address_save', 10, 2); function notify_user_of_address_save($user_id, $address) { $user_info = get_userdata($user_id); wp_mail($user_info->user_email, 'Your address has been updated', 'Your address has been successfully saved.'); }
- 住所が保存された際に、ユーザーにメール通知を送信します。
-
住所情報のログ記録
add_action('woocommerce_customer_save_address', 'log_address_changes', 10, 2); function log_address_changes($user_id, $address) { $log_entry = '[' . date('Y-m-d H:i:s') . '] Address updated for user ID: ' . $user_id . "n"; file_put_contents('address_changes.log', $log_entry, FILE_APPEND); }
- 住所が更新された際に、その情報をログファイルに記録します。
-
住所が不正な場合のエラーメッセージ
add_action('woocommerce_customer_save_address', 'validate_address_fields', 10, 2); function validate_address_fields($user_id, $address) { if (empty($address['city'])) { wc_add_notice(__('City field cannot be empty.', 'woocommerce'), 'error'); } }
- 住所が保存される際に、市のフィールドが空であればエラーメッセージを表示します。
-
外部APIへのデータ送信
add_action('woocommerce_customer_save_address', 'send_address_to_external_api', 10, 2); function send_address_to_external_api($user_id, $address) { $api_url = 'https://example.com/api/address'; wp_remote_post($api_url, array( 'body' => json_encode($address), 'headers' => array('Content-Type' => 'application/json') )); }
- 住所が保存された際に外部APIにその情報を送信します。
これらのサンプルコードは、WooCommerceのwoocommerce_customer_save_address
アクションを実際に利用する際の参考としてご活用ください。