概要
woocommerce_create_page_id
は、WooCommerceがページを作成する際にトリガーされるアクションフックです。このフックは、WooCommerceの各店舗におけるページのIDが生成されるときに呼び出され、カスタム処理を追加するために使用されます。以下はこのアクションがよく使われる場面です:
- カスタムフィールドの追加
- ページタイトルの変更
- SEOメタデータの設定
- アクセス制限や権限の設定
- ページデザインのカスタマイズ
- レビューや評価機能の追加
構文
do_action('woocommerce_create_page_id', $page_id, $page_type);
パラメータ
$page_id
(int): 作成されたページのID。$page_type
(string): 作成されるページのタイプ(例: ‘shop’, ‘cart’, ‘checkout’ など)。
戻り値
このアクション自体には戻り値はありません。カスタム処理を行うための呼び出しとして機能します。
使用可能なプラグインWooCommerceのバージョン
このアクションはWooCommerceバージョン2.1以降で利用可能です。
ワードプレスのバージョン
WordPressの様々なバージョンで使用可能ですが、特にWooCommerceとの互換性が重要です。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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_create_page_id', 'add_custom_field_to_page', 10, 2);
function add_custom_field_to_page($page_id, $page_type) {
if ($page_type === 'shop') {
add_post_meta($page_id, 'custom_field_key', 'Custom Value', true);
}
}
このコードは、Shopページが作成される際にそのページにカスタムフィールドを追加します。
※ 参考 URL: (https://developer.wordpress.org/reference/functions/add_post_meta/)
サンプル2: ページタイトルの変更
add_action('woocommerce_create_page_id', 'change_page_title', 10, 2);
function change_page_title($page_id, $page_type) {
if ($page_type === 'cart') {
$page = array(
'ID' => $page_id,
'post_title' => 'My Custom Cart Title',
);
wp_update_post($page);
}
}
このコードは、カートページが作成される際にページタイトルをカスタマイズします。
※ 参考 URL: (https://developer.wordpress.org/reference/functions/wp_update_post/)
サンプル3: SEOメタデータの設定
add_action('woocommerce_create_page_id', 'set_seo_meta_data', 10, 2);
function set_seo_meta_data($page_id, $page_type) {
if ($page_type === 'checkout') {
update_post_meta($page_id, '_yoast_wpseo_title', 'Custom Checkout Title');
}
}
このコードは、チェックアウトページが作成される際にSEOに関連するメタデータを設定します。
※ 参考 URL: (https://developer.yoast.com/docs/api/)
サンプル4: アクセス制限の設定
add_action('woocommerce_create_page_id', 'restrict_page_access', 10, 2);
function restrict_page_access($page_id, $page_type) {
if ($page_type === 'myaccount') {
// カスタム制限ロジックを追加
}
}
このコードは、マイアカウントページを作成する際にアクセス制限を実装するためのベースを提供します。
※ 参考 URL: (https://developer.wordpress.org/reference/functions/current_user_can/)
サンプル5: ページデザインのカスタマイズ
add_action('woocommerce_create_page_id', 'custom_page_design', 10, 2);
function custom_page_design($page_id, $page_type) {
if ($page_type === 'shop') {
update_post_meta($page_id, '_custom_design_meta', 'custom_design_value');
}
}
このコードは、Shopページに特定のデザインメタデータを追加することができます。
※ 参考 URL: (https://developer.wordpress.org/reference/functions/update_post_meta/)