97 lines
1.6 KiB
PHP
97 lines
1.6 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* CartFlows Ajax Base.
|
||
|
*
|
||
|
* @package CartFlows
|
||
|
*/
|
||
|
|
||
|
namespace CartflowsAdmin\Wizard\Ajax;
|
||
|
|
||
|
// Exit if accessed directly.
|
||
|
if ( ! defined( 'ABSPATH' ) ) {
|
||
|
exit;
|
||
|
}
|
||
|
|
||
|
use CartflowsAdmin\Wizard\Ajax\AjaxErrors;
|
||
|
|
||
|
/**
|
||
|
* Class Admin_Menu.
|
||
|
*/
|
||
|
abstract class AjaxBase {
|
||
|
|
||
|
/**
|
||
|
* Ajax action prefix.
|
||
|
*
|
||
|
* @var string
|
||
|
*/
|
||
|
private $prefix = 'cartflows';
|
||
|
|
||
|
/**
|
||
|
* Erros class instance.
|
||
|
*
|
||
|
* @var object
|
||
|
*/
|
||
|
public $errors = null;
|
||
|
|
||
|
/**
|
||
|
* Constructor
|
||
|
*
|
||
|
* @since 1.0.0
|
||
|
*/
|
||
|
public function __construct() {
|
||
|
|
||
|
$this->errors = AjaxErrors::get_instance();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Register ajax events.
|
||
|
*
|
||
|
* @param array $ajax_events Ajax events.
|
||
|
*/
|
||
|
public function init_ajax_events( $ajax_events ) {
|
||
|
|
||
|
if ( ! empty( $ajax_events ) ) {
|
||
|
|
||
|
foreach ( $ajax_events as $ajax_event ) {
|
||
|
add_action( 'wp_ajax_' . $this->prefix . '_' . $ajax_event, array( $this, $ajax_event ) );
|
||
|
|
||
|
$this->localize_ajax_action_nonce( $ajax_event );
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Localize nonce for ajax call.
|
||
|
*
|
||
|
* @param string $action Action name.
|
||
|
* @return void
|
||
|
*/
|
||
|
public function localize_ajax_action_nonce( $action ) {
|
||
|
|
||
|
if ( current_user_can( 'manage_options' ) ) {
|
||
|
|
||
|
add_filter(
|
||
|
'cartflows_admin_wizard_localized_vars',
|
||
|
function( $localize ) use ( $action ) {
|
||
|
|
||
|
$localize[ $action . '_nonce' ] = wp_create_nonce( $this->prefix . '_' . $action );
|
||
|
return $localize;
|
||
|
}
|
||
|
);
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Get ajax error message.
|
||
|
*
|
||
|
* @param string $type Message type.
|
||
|
* @return string
|
||
|
*/
|
||
|
public function get_error_msg( $type ) {
|
||
|
|
||
|
return $this->errors->get_error_msg( $type );
|
||
|
}
|
||
|
}
|