概要
woocommerce_register_post_type_shop_order
アクションは、WooCommerceプラグイン内で「Shop Order」カスタム投稿タイプの登録に関連するフックです。このアクションは、主にWooCommerceの機能に依存したカスタマイズや拡張を実現する際に用いられます。具体的には次のような機能に利用されます。
- 注文データのカスタマイズ
- 注文管理画面の拡張
- 注文管理用のカスタムメタデータの追加
- 注文の表示形式の変更
- 新しいカスタムステータスの設定
- 特定の条件に基づいたフロントエンドのフィルタリング
構文
do_action( 'woocommerce_register_post_type_shop_order' );
パラメータ
このアクションは、パラメータを受け取りません。
戻り値
競合の戻り値はありません。このアクションは、フックしている関数を実行するためのものです。
使用可能なプラグインバージョン
- WooCommerce: 3.0以上
- WordPress: 4.0以上
サンプルコード
サンプルコード1
add_action( 'woocommerce_register_post_type_shop_order', 'custom_shop_order_init' );
function custom_shop_order_init() {
// Shop Order投稿タイプにカスタムフィールドを追加
register_post_meta( 'shop_order', 'custom_meta', [
'type' => 'string',
'description' => 'カスタムメタデータ',
'single' => true,
'show_in_rest' => true,
]);
}
このコードは、Shop Order投稿タイプにカスタムメタフィールドを追加しています。これにより、特定のデータを保存しやすくなります。
引用元: https://developer.wordpress.org/reference/functions/register_post_meta/
サンプルコード2
add_action( 'woocommerce_register_post_type_shop_order', 'add_custom_column_to_orders' );
function add_custom_column_to_orders() {
add_filter( 'manage_edit-shop_order_columns', 'my_custom_columns' );
function my_custom_columns( $columns ) {
$columns['custom_order_column'] = __( 'カスタム列', 'textdomain' );
return $columns;
}
}
このコードは、WooCommerceの注文管理画面にカスタム列を追加します。
引用元: https://docs.woocommerce.com/document/adding-custom-columns-to-woocommerce-order-lists/
サンプルコード3
add_action( 'woocommerce_register_post_type_shop_order', 'alter_order_statuses' );
function alter_order_statuses() {
add_filter( 'woocommerce_order_statuses', 'add_custom_order_status' );
function add_custom_order_status( $order_statuses ) {
$order_statuses['wc-custom-status'] = _x( 'カスタムステータス', 'Order status', 'textdomain' );
return $order_statuses;
}
}
このコードは、新しいカスタム注文ステータスを追加します。これにより、管理画面で独自のステータスを使用できるようになります。
引用元: https://developer.woocommerce.com/document/custom-order-status/
サンプルコード4
add_action( 'woocommerce_register_post_type_shop_order', 'modify_shop_order_labels' );
function modify_shop_order_labels() {
add_filter( 'post_type_labels_shop_order', 'custom_labels' );
function custom_labels( $labels ) {
$labels->name = __( 'カスタム注文名', 'textdomain' );
return $labels;
}
}
このコードは、Shop Orderのラベルをカスタマイズします。これにより、ユーザーインターフェイスに表示される名称が変更されます。
引用元: https://developer.wordpress.org/reference/functions/register_post_type/
サンプルコード5
add_action( 'woocommerce_register_post_type_shop_order', 'enqueue_admin_scripts' );
function enqueue_admin_scripts() {
wp_enqueue_script( 'custom-order-js', plugin_dir_url( __FILE__ ) . 'js/custom-order.js', array( 'jquery' ), null, true );
}
このコードは、WooCommerceの管理画面にJavaScriptファイルを追加します。これを用いて、自分のカスタム機能を追加したり、管理画面のインターフェイスを強化できます。
引用元: https://developer.wordpress.org/reference/functions/wp_enqueue_script/
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
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 |