PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /home/trave494/craftgigstars.online/wp-content/plugins/optinmonster/OMAPI/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //home/trave494/craftgigstars.online/wp-content/plugins/optinmonster/OMAPI/Ajax.php |
<?php /** * Ajax class. * * @since 1.0.0 * * @package OMAPI * @author Thomas Griffin */ class OMAPI_Ajax { /** * Holds the class object. * * @since 1.0.0 * * @var object */ public static $instance; /** * Path to the file. * * @since 1.0.0 * * @var string */ public $file = __FILE__; /** * Holds the base class object. * * @since 1.0.0 * * @var object */ public $base; /** * Primary class constructor. * * @since 1.0.0 */ public function __construct() { // Set our object. $this->set(); // Load non-WordPress style ajax requests. if ( isset( $_REQUEST['optin-monster-ajax-route'] ) && $_REQUEST['optin-monster-ajax-route'] ) { if ( isset( $_REQUEST['action'] ) ) { add_action( 'init', array( $this, 'ajax' ), 999 ); } } // Load actions and filters. add_action( 'wp_ajax_omapi_query_posts', array( $this, 'query_posts' ) ); add_action( 'wp_ajax_omapi_query_taxonomies', array( $this, 'query_taxonomies' ) ); add_action( 'wp_ajax_omapi_query_selected_posts', array( $this, 'query_selected_posts' ) ); add_action( 'wp_ajax_omapi_query_selected_taxonomies', array( $this, 'query_selected_taxonomies' ) ); } /** * Sets our object instance and base class instance. * * @since 1.0.0 */ public function set() { self::$instance = $this; $this->base = OMAPI::get_instance(); $this->view = 'ajax'; } /** * Callback to process external ajax requests. * * @since 1.0.0 */ public function ajax() { switch ( $_REQUEST['action'] ) { case 'mailpoet' : $this->mailpoet(); break; } } /** * Queries the posts based on search parameters. * * @since 1.0.0 */ public function query_posts() { // Run a security check first. check_ajax_referer( 'omapi-query-nonce', 'nonce' ); // Prepare variables. $search = stripslashes( $_POST['q'] ); $post_types = get_post_types( array( 'public' => true ) ); $ret = array(); $args = array( 'post_type' => $post_types, 's' => $search, 'posts_per_page' => -1, 'post_status' => array( 'publish', 'future' ), ); // Make the query. $posts = get_posts( $args ); if ( empty( $posts ) ) { // Maybe they entered a post ID to search. Let's try that. $search = (int) $search; if ( $search ) { $id_args = array( 'post_type' => $post_types, 'post__in' => (array) $search, 'posts_per_page' => -1 ); $id_posts = get_posts( $id_args ); if ( empty( $id_posts ) ) { $ret['items'] = array(); } else { foreach ( $id_posts as $post ) { $ret['items'][] = array( 'id' => $post->ID, 'title' => $post->post_title ); } } } else { $ret['items'] = array(); } } else { foreach ( $posts as $post ) { $ret['items'][] = array( 'id' => $post->ID, 'title' => $post->post_title ); } } // Send back the response. die( json_encode( $ret ) ); } /** * Queries the taxonomies based on search parameters. * * @since 1.0.0 */ public function query_taxonomies() { // Run a security check first. check_ajax_referer( 'omapi-query-nonce', 'nonce' ); // Prepare variables. $search = stripslashes( $_POST['q'] ); $terms = get_tags( array( 'name__like' => $search ) ); $ret = array(); // Make the query. if ( empty( $terms ) ) { $ret['items'] = array(); } else { foreach ( $terms as $term ) { $ret['items'][] = array( 'id' => $term->term_id, 'title' => $term->name ); } } // Send back the response. die( json_encode( $ret ) ); } /** * Queries the selected items for "never" and "only" output settings * to show pre-selected values by the user. * * @since 1.0.0 */ public function query_selected_posts() { // Run a security check first. check_ajax_referer( 'omapi-query-nonce', 'nonce' ); // Prepare variables. $ids = explode( ',', stripslashes( $_POST['ids'] ) ); $ret = array(); $args = array( 'post__in' => $ids, 'posts_per_page' => -1, 'post_type' => get_post_types( array( 'public' => true ) ), 'post_status' => array( 'publish', 'future' ), ); // Make the query. $posts = get_posts( $args ); if ( empty( $posts ) ) { $ret['items'] = array(); } else { foreach ( $posts as $post ) { $ret['items'][] = array( 'id' => $post->ID, 'title' => $post->post_title ); } } // Send back the response. die( json_encode( $ret ) ); } /** * Queries the selected tags to show pre-selected values by the user. * * @since 1.0.0 */ public function query_selected_taxonomies() { // Run a security check first. check_ajax_referer( 'omapi-query-nonce', 'nonce' ); // Prepare variables. $ids = explode( ',', stripslashes( $_POST['ids'] ) ); $ret = array(); $ret['items'] = array(); // Make the query. foreach ( $ids as $id ) { $tag = get_tag( absint( $id ) ); if ( $tag ) { $ret['items'][] = array( 'id' => $tag->term_id, 'title' => $tag->name ); } } // Send back the response. die( json_encode( $ret ) ); } /** * Opts the user into MailPoet. * * @since 1.0.0 */ public function mailpoet() { // Run a security check first. check_ajax_referer( 'omapi', 'nonce' ); // Prepare variables. $optin = $this->base->get_optin_by_slug( stripslashes( $_REQUEST['optin'] ) ); $list = get_post_meta( $optin->ID, '_omapi_mailpoet_list', true ); $email = stripslashes( $_REQUEST['email'] ); $name = isset( $_REQUEST['name'] ) ? stripslashes( $_REQUEST['name'] ) : false; $user = array(); // Possibly split name into first and last. if ( $name ) { $names = explode( ' ', $name ); if ( isset( $names[0] ) ) { $user['firstname'] = $names[0]; } if ( isset( $names[1] ) ) { $user['lastname'] = $names[1]; } } // Save the email address. $user['email'] = $email; // Store the data. $data = array( 'user' => $user, 'user_list' => array( 'list_ids' => array( $list ) ), ); $data = apply_filters( 'optin_monster_pre_optin_mailpoet', $data, $_REQUEST, $list, null ); // Save the subscriber. Check for MailPoet 3 first. Default to legacy. if ( class_exists( '\\MailPoet\\Config\\Initializer' ) ) { // Customize the lead data for MailPoet 3. if ( isset( $user['firstname'] ) ) { $user['first_name'] = $user['firstname']; unset( $user['firstname'] ); } if ( isset( $user['lastname'] ) ) { $user['last_name'] = $user['lastname']; unset( $user['lastname'] ); } if ( \MailPoet\Models\Subscriber::findOne( $user['email'] ) ) { try { \MailPoet\API\API::MP( 'v1' )->subscribeToList( $user['email'], $list ); } catch ( Exception $e ) {} } else { try { \MailPoet\API\API::MP( 'v1' )->addSubscriber( $user, array( $list ) ); } catch ( Exception $e ) {} } } else { $userHelper = WYSIJA::get( 'user', 'helper' ); $userHelper->addSubscriber( $data ); } // Send back a response. die( json_encode( true ) ); } }