• File: WPForms.php
  • Full Path: /home/matthif/www/wp-content/plugins/optinmonster/OMAPI/WPForms.php
  • Date Modified: 01/24/2025 1:58 PM
  • File size: 2.6 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php
/**
 * WPForms class.
 *
 * @since 2.9.0
 *
 * @package OMAPI
 * @author  Eduardo Nakatsuka
 */

// Exit if accessed directly.
if ( ! defined'ABSPATH' ) ) {
    exit;
}

/**
 * The WPForms class.
 *
 * @since 2.9.0
 */
class OMAPI_WPForms extends OMAPI_Integrations_Base {

    
/**
     * The OMAPI_WPForms_RestApi instance.
     *
     * @since 2.13.0
     *
     * @var null|OMAPI_WPForms_RestApi
     */
    
public $rest null;

    
/**
     * Holds the instance of OMAPI_WPForms_Save.
     *
     * @var null|OMAPI_WPForms_Save
     */
    
public $save null;

    
/**
     * Primary class constructor.
     *
     * @since 2.9.0
     */
    
public function __construct() {
        
parent::__construct();
        
$this->save = new OMAPI_WPForms_Save();

        
add_action'optin_monster_api_rest_register_routes', array( $this'maybe_init_rest_routes' ) );

        
// When WPForms is activated, connect it.
        
add_action'activate_wpforms-lite/wpforms.php', array( $this->save'connect' ) );
        
add_action'activate_wpforms/wpforms.php', array( $this->save'connect' ) );

        
// When WPForms is deactivated, disconnect.
        
add_action'deactivate_wpforms-lite/wpforms.php', array( $this->save'disconnect' ) );
        
add_action'deactivate_wpforms/wpforms.php', array( $this->save'disconnect' ) );
    }

    
/**
     * Check if the WPForms plugin is active.
     *
     * @since 2.9.0
     *
     * @return bool
     */
    
public static function is_active() {
        return 
class_exists'WPForms'true );
    }

    
/**
     * Get WPForms forms array containing label and value.
     *
     * @since 2.9.0
     *
     * @return array
     */
    
public function get_forms_array() {
        
$forms  $this->get_forms();
        
$result = array();

        if ( empty( 
$forms ) || ! is_array$forms ) ) {
            return 
$result;
        }

        foreach ( 
$forms as $form ) {
            
$result[] = array(
                
'value' => $form->ID,
                
'label' => $form->post_title,
            );
        }

        return 
$result;
    }

    
/**
     * Get forms from WPForms plugin.
     *
     * @since 2.9.0
     *
     * @return array All the forms in WPForms plugin.
     */
    
public function get_forms() {
        if ( ! 
function_exists'wpforms' ) ) {
            return array();
        }

        return 
wpforms()->form->get'', array( 'order' => 'DESC' ) );
    }

    
/**
     * Get the currently installed WPForms version.
     *
     * @since 2.9.0
     *
     * @return string The WPForms version.
     */
    
public static function version() {
        if ( ! 
function_exists'wpforms' ) ) {
            return 
'0.0.0';
        }

        
$version wpforms()->version;

        return 
$version $version '0.0.0';
    }

    
/**
     * Initiate our REST routes for EDD if EDD active.
     *
     * @since 2.13.0
     *
     * @return void
     */
    
public function maybe_init_rest_routes() {
        if ( 
self::is_active() ) {
            
$this->rest = new OMAPI_WPForms_RestApi$this );
        }
    }

}