Hacked By AnonymousFox
<?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>';
}
}
}
Hacked By AnonymousFox1.0, Coded By AnonymousFox