概要
woocommerce_register_post
は、WooCommerceプラグインでカスタム投稿タイプを登録する際に使用されるフックです。このアクションは、特に以下のような機能を実装するために利用されることが多いです:
- 商品の追加やカスタマイズ
- 特定のメタデータの登録
- 商品登録時のバリデーション処理
- カスタムフィールドの追加
- カスタムタクソノミーの登録
- 商品カテゴリーやタグのカスタマイズ
構文
add_action('woocommerce_register_post', 'your_function_name', 10, 2);
パラメータ
$post_id
: 新しく登録された投稿のID$post
: 登録された投稿オブジェクト
戻り値
このアクション自体は戻り値を持ちませんが、他のフックと組み合わせることで、カスタマイズの結果を反映させることができます。
プラグインのバージョン
- WooCommerce: すべてのバージョンで使用可能
- WordPress: 5.0以降
サンプルコード
サンプルコード 1: 商品にカスタムメタデータを追加する
このコードは、新しく登録された商品にカスタムメタデータを追加するものです。
add_action('woocommerce_register_post', 'add_custom_meta_data', 10, 2);
function add_custom_meta_data($post_id, $post) {
if ($post->post_type === 'product') {
add_post_meta($post_id, '_custom_meta_key', 'Custom Value', true);
}
}
サンプルコード 2: フォームのバリデーション
このコードは、商品登録時に特定のフィールドをチェックし、エラーメッセージを表示します。
add_action('woocommerce_register_post', 'validate_product_form', 10, 2);
function validate_product_form($post_id, $post) {
if ($post->post_type === 'product' && empty($_POST['custom_field'])) {
wp_die(__('Custom field is required.', 'woocommerce'));
}
}
サンプルコード 3: カスタムタクソノミーの登録
このコードは、商品が登録される際に独自のタクソノミーを追加します。
add_action('woocommerce_register_post', 'register_custom_taxonomy', 10, 2);
function register_custom_taxonomy($post_id, $post) {
if ($post->post_type === 'product') {
wp_set_object_terms($post_id, 'custom_term', 'custom_taxonomy', true);
}
}
サンプルコード 4: 商品登録時のカスタムフィールド追加
この例では、新しい商品にカスタムフィールドを追加しています。
add_action('woocommerce_register_post', 'add_custom_fields_to_product', 10, 2);
function add_custom_fields_to_product($post_id, $post) {
if ($post->post_type === 'product') {
update_post_meta($post_id, '_custom_field', sanitize_text_field($_POST['custom_field']));
}
}
サンプルコード 5: 商品のデフォルトステータスを変更
このコードは、新しく登録された商品のデフォルトの公開ステータスを変更します。
add_action('woocommerce_register_post', 'set_default_product_status', 10, 2);
function set_default_product_status($post_id, $post) {
if ($post->post_type === 'product') {
wp_update_post(array('ID' => $post_id, 'post_status' => 'pending'));
}
}
この関数のアクションでの使用可能性
アクション名 | 使用可能性 |
---|---|
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 |