KOK - MANAGER
Edit File: WSForms.php
<?php /** * Integration for WS Forms * * @package PopupMaker * @copyright Copyright (c) 2024, Code Atlantic LLC */ class PUM_Integration_Form_WSForms extends PUM_Abstract_Integration_Form { /** * Unique key identifier for this provider. * * @var string */ public $key = 'wsforms'; /** * Only used to hook in a custom action for non AJAX based submissions. * * Could be used for other initiations as well where needed. */ public function __construct() { add_action( 'wsf_submit_post_complete', [ $this, 'on_success' ], 10, 1 ); } /** * Text label that will be used throughout the various options screens. * * @return string */ public function label() { // phpcs:ignore WordPress.WP.I18n.TextDomainMismatch return __( 'WS Forms', 'wsforms' ); } /** * Should return true when the required form plugin is active. * * @return bool */ public function enabled() { return class_exists( 'WS_Form' ) || ( defined( 'WS_FORM_VERSION' ) && WS_FORM_VERSION ); } /** * Return a useable array of all forms from this provider. * * @return array */ public function get_forms() { return \wsf_form_get_all(); } /** * Return a single form by ID. * * @param string $id * * @return mixed */ public function get_form( $id ) { return wsf_form_get_object( $id ); } /** * Returns an array of options for a select list. * * Should be in the format of $formId => $formLabel * * @return array */ public function get_form_selectlist() { $form_selectlist = []; $forms = $this->get_forms(); foreach ( $forms as $form ) { $form_selectlist[ $form['id'] ] = $form['label']; } return $form_selectlist; } /** * Hooks in a success functions specific to this provider for non AJAX submission handling. * * @param \WS_Form_Submit $submit */ public function on_success( $submit ) { if ( ! $this->should_process_submission() ) { return; } $popup_id = $this->get_popup_id(); $this->increase_conversion( $popup_id ); pum_integrated_form_submission( [ 'popup_id' => $popup_id, 'form_provider' => $this->key, 'form_id' => $submit->form_id, ] ); } /** * Load a custom script file to handle AJAX based submissions or other integrations with Popup Maker frontend. * * @param array $js * * @return array */ public function custom_scripts( $js = [] ) { return $js; } /** * Load custom styles for hacking some elements specifically inside popups, such as datepickers. * * @param array $css * * @return array */ public function custom_styles( $css = [] ) { return $css; } }