概要
elementor/documents/ajax_save/return_data
アクションは、Elementorの保存操作に続いてデータが返されるタイミングでフックされるアクションです。このアクションは、主に以下の機能を実装する際に役立ちます。
- コンテンツのカスタムメタデータを追加または更新する。
- ユーザー通知メッセージを表示する。
- 保存が成功した際のカスタムレスポンスを構築する。
- 外部サービスとの統合(保存時にAPIを呼び出す等)。
- 特定のデータ構造の変更や追加処理を行う。
- 保存イベントのログを記録する。
構文
add_action( 'elementor/documents/ajax_save/return_data', 'custom_function' );
パラメータ
$response_data
: 保存されたデータに関する配列。ここに追加情報を加えることが可能。
戻り値
- このアクションは、処理されたデータの配列を返します。これにより、保存された内容に基づいて動的にレスポンスを変更することができます。
対応バージョン
- Elementor バージョン: 2.0以上
- WordPress バージョン: 4.7以上
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
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: 保存成功時のカスタムレスポンス
このサンプルコードは、Elementorの保存操作が成功した際にカスタムメッセージを返すものです。
add_action( 'elementor/documents/ajax_save/return_data', function( $response_data ) {
$response_data['custom_message'] = '保存が成功しました!';
return $response_data;
});
サンプル2: カスタムメタデータの保存
このサンプルは、保存時に特定のカスタムメタデータを追加することを示しています。
add_action( 'elementor/documents/ajax_save/return_data', function( $response_data ) {
$document = ElementorPlugin::$instance->documents->get( $response_data['id'] );
update_post_meta( $document->get_main_id(), 'custom_meta_key', 'custom_value' );
});
サンプル3: 外部APIへのデータ送信
このサンプルでは、保存時に外部APIにデータを送信します。
add_action( 'elementor/documents/ajax_save/return_data', function( $response_data ) {
wp_remote_post( 'https://example.com/api', [
'body' => json_encode( $response_data ),
'headers' => [
'Content-Type' => 'application/json',
],
]);
});
サンプル4: 保存イベントのログを記録
このサンプルは、保存イベントをログに記録する機能を示しています。
add_action( 'elementor/documents/ajax_save/return_data', function( $response_data ) {
error_log( 'Elementor Document Saved: ' . json_encode( $response_data ) );
});
サンプル5: 結果に基づく条件付きメッセージ
このサンプルは、保存結果に基づいて条件付きでメッセージを変更しています。
add_action( 'elementor/documents/ajax_save/return_data', function( $response_data ) {
if ( $response_data['status'] === 'success' ) {
$response_data['message'] = '正常に保存されました!';
} else {
$response_data['message'] = '保存中にエラーが発生しました。';
}
return $response_data;
});