<?php /** * Functions for developers * * @package PopupMaker * @copyright Copyright (c) 2024, Code Atlantic LLC */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } /** * Call this with a popup ID and it will trigger the * JS based forms.success function with your settings * on the next page load. * * @since 1.7.0 * * @param int $popup_id * @param array $settings */ function pum_trigger_popup_form_success( $popup_id = null, $settings = [] ) { if ( ! isset( $popup_id ) ) { // Ignored as this field is appended to existing forms and is limited to an absint. // phpcs:ignore WordPress.Security.NonceVerification.Recommended $popup_id = isset( $_REQUEST['pum_form_popup_id'] ) && absint( $_REQUEST['pum_form_popup_id'] ) > 0 ? absint( $_REQUEST['pum_form_popup_id'] ) : false; } if ( $popup_id ) { PUM_Integrations::$form_success = [ 'popup_id' => $popup_id, 'settings' => $settings, ]; } } /** * @param array $args { * An array of parameters that customize the way the parser works. * * @type string $form_provider Key indicating which form provider this form belongs to. * @type string|int $form_id Form ID, usually numeric, but can be hash based. * @type int $form_instance_id Optional form instance ID. * @type int $popup_id Optional popup ID. * @type bool $ajax If the submission was processed via AJAX. Generally gonna be false outside of JavaScript. * @type bool $tracked Whether the submission has been handled by tracking code or not. Prevents duplicates. * } */ function pum_integrated_form_submission( $args = [] ) { $args = wp_parse_args( $args, [ 'popup_id' => null, 'form_provider' => null, 'form_id' => null, 'form_instance_id' => null, 'ajax' => false, 'tracked' => false, ] ); $args = apply_filters( 'pum_integrated_form_submission_args', $args ); PUM_Integrations::$form_submission = $args; do_action( 'pum_integrated_form_submission', $args ); }