私の Web サイトには、ユーザーが情報を要求できるフォームがありますが、落とし穴があります。フォーム内にチェックボックスがあり、ユーザーがそれを選択すると、メールを別の場所に送信する必要があります。(スクリーンショットを参照)
何が起こっているか: 重力フォームは、両方のルールが一致すると両方のメールを送信しますが、優先度に基づいて 1 つのメールのみを送信したいです。どうやってやるの?
私の Web サイトには、ユーザーが情報を要求できるフォームがありますが、落とし穴があります。フォーム内にチェックボックスがあり、ユーザーがそれを選択すると、メールを別の場所に送信する必要があります。(スクリーンショットを参照)
何が起こっているか: 重力フォームは、両方のルールが一致すると両方のメールを送信しますが、優先度に基づいて 1 つのメールのみを送信したいです。どうやってやるの?
ルーティングで個々のルールの AND 条件が考慮されるとは思えません。
ただし、次のフィルタを使用して、電子メールを送信する前にさらに変更を加えることができます。
add_filter("gform_notification", "my_custom_function", 10, 3);
または、特定のフォーム (id = 42) の場合:
add_filter("gform_notification_42", "my_custom_function", 10, 3);
ソース: http://www.gravityhelp.com/documentation/page/Gform_notification
アップデート
フィールドにアクセスする例は次のようになります。
add_filter('gform_notification_42', 'updateNotificationForForm42', 10, 3);
function updateNotificationForForm42( $notification, $form, $entry ) {
$fields = $form['fields'];
foreach( $fields as $field ) {
// Here you need to provide the field with some kind of identifying mark (e.g., Admin Label).
// Below assumes the field you're interested in has an admin label of 'Test Me'
if( $field['adminLabel'] == 'Test Me' ) {
$fieldValue = rgpost("input_{$field['id']}");
}
}
}
Gravity Forms開発者ドキュメントには、アクション/フィルターを介してカスタマイズする方法の例がたくさんあります。