Я пытаюсь получить каждую частичную отправку формы с помощью плагина частичных форм GF, которая будет сохранена как «Сохранить и продолжить» со своим уникальным токеном. Это позволит нам использовать токен и отправить по электронной почте ссылку пользователям в маркетинговых сообщениях, где они могут продолжить позже.
Я сделал это по большей части, но когда частичная запись обновлена, по какой-то причине GF удаление resume_token
, resume_url
и date_saved
из мета-таблицы, чтобы, пока токен все еще работал, маленькая сохраненная иконка не появлялась, когда мета не существует, поэтому найти ссылку сложнее. Я должен go прямо в базе данных, чтобы найти токен.
add_action( 'gform_partialentries_post_entry_saved', 'create_save_and_continue_link', 10, 2 );
function create_save_and_continue_link( $partial_entry, $form ) {
$lead = GFFormsModel::get_current_lead();
$field_values = RGForms::post( 'gform_field_values' );
$page_number = 1;
$files = [];
$form_unique_id = GFFormsModel::get_form_unique_id( $form['id'] );
$ip = rgars( $form, 'personalData/preventIP' ) ? '' : GFFormsModel::get_ip();
$source_url = GFFormsModel::get_current_page_url();
$source_url = esc_url_raw( $source_url );
$entry_id = $partial_entry['id'];
$resume_token = GFFormsModel::save_draft_submission($form, $entry_id, $field_values, $page_number, $files, $form_unique_id, $ip, $source_url);
// Variables needed to be saved for save and continue to work
$resume_url = apply_filters( 'gform_save_and_continue_resume_url', add_query_arg( array( 'gf_token' => $resume_token ), GFFormsModel::get_current_page_url() ), $form, $resume_token, null );
$resume_url = esc_url( $resume_url );
// Save entry meta
gform_add_meta( $entry_id, 'resume_token', $resume_token );
gform_add_meta( $entry_id, 'resume_url', $resume_url );
gform_add_meta( $entry_id, 'date_saved', current_time( 'mysql', true ) );
}