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/Actions.php |
<?php /** * Actions class. * * @since 1.0.0 * * @package OMAPI * @author Thomas Griffin */ class OMAPI_Actions { /** * 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 any action notices. * * @since 1.0.0 * * @var array */ public $notices = array(); /** * 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(); // Add validation messages. add_action( 'admin_init', array( $this, 'actions' ) ); add_action( 'admin_notices', array( $this, 'notices' ) ); } /** * 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 = isset( $_GET['optin_monster_api_view'] ) ? stripslashes( $_GET['optin_monster_api_view'] ) : $this->base->get_view(); $this->optin_id = isset( $_GET['optin_monster_api_id'] ) ? absint( $_GET['optin_monster_api_id'] ) : false; } /** * Process admin actions. * * @since 1.0.0 */ public function actions() { // Ensure action is set and correct and the optin is set. $action = isset( $_GET['optin_monster_api_action'] ) ? stripslashes( $_GET['optin_monster_api_action'] ) : false; if ( ! $action || 'edit' == $action ) { return; } // Verify the nonce URL. if ( ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce( $_GET['_wpnonce'], 'omapi-action' ) ) { return; } // Prepare variable of args for admin notice. $args = array(); $args['optin_monster_api_action_done'] = $action; $args['optin_monster_api_view'] = 'optins'; switch ( $action ) { case 'status' : if ( $this->status() ) { $args['optin_monster_api_action_type'] = 'updated'; $args['optin_monster_api_action_id'] = $this->optin_id; } else { $args['optin_monster_api_action_type'] = 'error'; } break; case 'cookies' : if ( $this->cookies() ) { $args['optin_monster_api_action_type'] = 'updated'; } else { $args['optin_monster_api_action_type'] = 'error'; } break; } // Now redirect to prevent reloads from undoing actions. $redirect = esc_url_raw( add_query_arg( $args, admin_url( 'admin.php?page=optin-monster-api-settings' ) ) ); die( wp_redirect( $redirect ) ); } /** * Changes the status of an optin. * * @since 1.0.0 */ public function status() { // Prepare variables. $status = (bool) get_post_meta( $this->optin_id, '_omapi_enabled', true ); $new = $status ? false : true; $field = 'global'; $type = get_post_meta( $this->optin_id, '_omapi_type', true ); if ( 'post' == $type ) { $field = 'automatic'; } else if ( 'sidebar' == $type ) { $field = false; } // Maybe update the global/automatic status. if ( $field ) { update_post_meta( $this->optin_id, '_omapi_' . $field, $new ); } // Set enabled status. return update_post_meta( $this->optin_id, '_omapi_enabled', $new ); } /** * Changes test mode for the optin. * * @since 1.0.0 */ public function test() { $status = (bool) get_post_meta( $this->optin_id, '_omapi_test', true ); $new = $status ? false : true; return update_post_meta( $this->optin_id, '_omapi_test', $new ); } /** * Clears the local cookies. * * @since 1.0.0 */ public function cookies() { $optins = $this->base->get_optins(); foreach ( (array) $optins as $optin ) { if ( $optin ) { // Array of ids so all splits are included $ids = get_post_meta( $optin->ID, '_omapi_ids', true ); foreach ( (array) $ids as $id ) { setcookie( 'om-' . $id, '', -1, COOKIEPATH, COOKIE_DOMAIN, false ); setcookie( 'om-success-' . $id, '', -1, COOKIEPATH, COOKIE_DOMAIN, false ); setcookie( 'om-second-' . $id, '', -1, COOKIEPATH, COOKIE_DOMAIN, false ); setcookie( 'om-' . $id . '-closed', '', -1, COOKIEPATH, COOKIE_DOMAIN, false ); } } } // Clear out global cookie. setcookie( 'om-global-cookie', '', -1, COOKIEPATH, COOKIE_DOMAIN, false ); // Clear out interaction cookie. setcookie( 'om-interaction-cookie', '', -1, COOKIEPATH, COOKIE_DOMAIN, false ); // Clear out generic success cookie. setcookie( 'om-success-cookie', '', -1, COOKIEPATH, COOKIE_DOMAIN, false ); return true; } /** * Retrieves a notice message for an admin action. * * @since 1.0.0 * * @param string $action The admin action to target. * @param string $type The type of notice to retrieve. * @return string $notice The admin notice. */ public function get_notice( $action, $type = 'updated' ) { $notice = ''; switch ( $action ) { case 'status' : $notice = 'updated' == $type ? sprintf( __( 'The campaign status was updated successfully. You can configure more specific loading requirements by <a href="%s" title="Click here to edit the output settings for the updated campaign.">editing the output settings</a> for the campaign.', 'optin-monster-api' ), esc_url_raw( add_query_arg( array( 'page' => 'optin-monster-api-settings', 'optin_monster_api_view' => 'optins', 'optin_monster_api_action' => 'edit', 'optin_monster_api_id' => $this->optin_id ), admin_url( 'admin.php' ) ) ) ) : __( 'There was an error updating the campaign status. Please try again.', 'optin-monster-api' ); break; case 'cookies' : $notice = 'updated' == $type ? __( 'The local cookies have been cleared successfully.', 'optin-monster-api' ) : __( 'There was an error clearing the local cookies. Please try again.', 'optin-monster-api' ); break; } return $notice; } /** * Outputs any action notices. * * @since 1.0.0 */ public function notices() { // Check to see if any notices should be output based on query args. $action = isset( $_GET['optin_monster_api_action_done'] ) ? strip_tags( stripslashes( $_GET['optin_monster_api_action_done' ] ) ) : false; $type = isset( $_GET['optin_monster_api_action_type'] ) ? strip_tags( stripslashes( $_GET['optin_monster_api_action_type' ] ) ) : false; // Maybe set the optin ID if it is available. if ( isset( $_GET['optin_monster_api_action_id'] ) ) { $this->optin_id = absint( $_GET['optin_monster_api_action_id'] ); } if ( $action && $type ) { $this->notices[ $type ] = $this->get_notice( $action, $type ); } foreach ( $this->notices as $id => $message ) { echo '<div class="' . $id . '"><p>' . $message . '</p></div>'; } } }