概要
tec_events_custom_tables_v1_delete_post
は、The Events Calendarプラグインにおいて、イベントが削除された際にフックされるアクションです。このアクションは、特にカスタムテーブルや関連データのクリーンアップに利用されます。主に、以下のような機能を実装する際に使用されます:
- イベント削除時のログ記録
- 関連するメタデータの削除
- イベントカスタムフィールドのクリーニング
- 外部APIへの更新通知
- 他のテーブルとの依存関係の解除
- 通知メールやサンクスメールの送信
構文
do_action( 'tec_events_custom_tables_v1_delete_post', $post_id );
パラメータ
$post_id
(int): 削除された投稿のID。
戻り値
このアクションには戻り値はありません。
使用可能なバージョン
- The Events Calendarのバージョン: 5.0以降
- WordPressのバージョン: 5.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_action( 'tec_events_custom_tables_v1_delete_post', 'log_event_deletion' );
function log_event_deletion( $post_id ) {
$event_title = get_the_title( $post_id );
error_log( "Event deleted: " . $event_title );
}
引用元: https://developer.wordpress.org/reference/functions/error_log/
サンプルコード2: 関連メタデータの削除
このコードは、削除されたイベントに関連するメタデータを一緒に削除します。
add_action( 'tec_events_custom_tables_v1_delete_post', 'delete_event_meta_data' );
function delete_event_meta_data( $post_id ) {
delete_post_meta( $post_id, 'event_location' );
delete_post_meta( $post_id, 'event_date' );
}
引用元: https://developer.wordpress.org/reference/functions/delete_post_meta/
サンプルコード3: 外部APIへの更新通知
イベントが削除されたことを外部APIに通知するためのコードです。
add_action( 'tec_events_custom_tables_v1_delete_post', 'notify_external_api' );
function notify_external_api( $post_id ) {
$response = wp_remote_post( 'https://example.com/api/event-deleted', [
'body' => json_encode( [ 'post_id' => $post_id ] ),
'headers' => [ 'Content-Type' => 'application/json' ],
]);
}
引用元: https://developer.wordpress.org/reference/functions/wp_remote_post/
サンプルコード4: 他のテーブルとの依存関係の解除
このコードは、他のカスタムテーブルに関連するデータを削除します。
add_action( 'tec_events_custom_tables_v1_delete_post', 'remove_related_data' );
function remove_related_data( $post_id ) {
global $wpdb;
$wpdb->delete( 'wp_related_events', [ 'event_id' => $post_id ] );
}
引用元: https://developer.wordpress.org/reference/classes/wpdb/delete/
サンプルコード5: 通知メールの送信
イベントが削除されたことを管理者に通知するメールを送信します。
add_action( 'tec_events_custom_tables_v1_delete_post', 'send_notification_email' );
function send_notification_email( $post_id ) {
$admin_email = get_option( 'admin_email' );
$event_title = get_the_title( $post_id );
wp_mail( $admin_email, 'Event Deleted', "The event '{$event_title}' has been deleted." );
}
引用元: https://developer.wordpress.org/reference/functions/wp_mail/