プラグインElementorのelementor/documents/ajax_save/return_dataアクションの使用方法・解説

概要

elementor/documents/ajax_save/return_data アクションは、Elementorの保存操作に続いてデータが返されるタイミングでフックされるアクションです。このアクションは、主に以下の機能を実装する際に役立ちます。

  1. コンテンツのカスタムメタデータを追加または更新する。
  2. ユーザー通知メッセージを表示する。
  3. 保存が成功した際のカスタムレスポンスを構築する。
  4. 外部サービスとの統合(保存時にAPIを呼び出す等)。
  5. 特定のデータ構造の変更や追加処理を行う。
  6. 保存イベントのログを記録する。

構文

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;
});

この関数について質問する


上の計算式の答えを入力してください