| Server IP : 172.67.147.195 / Your IP : 216.73.216.68 Web Server : Apache/2 System : Linux hosting8537.lvs 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : mienphi ( 1014) PHP Version : 8.2.14 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/mienphi/public_html/wp-content/plugins/learnpress/inc/Ajax/ |
Upload File : |
<?php
/**
* class AjaxBase
*
* @since 4.2.7.6
* @version 1.0.0
*/
namespace LearnPress\Ajax;
use Exception;
use LP_Helper;
use LP_REST_Response;
use stdClass;
use Throwable;
class LoadContentViaAjax extends AbstractAjax {
public function load_content_via_ajax() {
$response = new LP_REST_Response();
try {
$params = wp_unslash( $_REQUEST['data'] ?? '' );
if ( empty( $params ) ) {
throw new Exception( 'Error: params invalid!' );
}
$params = LP_Helper::json_decode( $params, true );
if ( empty( $params['callback'] ) ||
! isset( $params['args'] ) ) {
throw new Exception( 'Error: params invalid!' );
}
// @var array $args
$args = $params['args'];
$callBack = $params['callback'];
if ( empty( $callBack['class'] ) ||
empty( $callBack['method'] ) ) {
throw new Exception( 'Error: callback invalid!' );
}
$class = $callBack['class'];
$method = $callBack['method'];
// Security: check callback is registered.
$allow_callbacks = apply_filters(
'lp/rest/ajax/allow_callback',
[]
);
$callBackStr = $class . ':' . $method;
if ( ! in_array( $callBackStr, $allow_callbacks ) ) {
throw new Exception( 'Error: callback is not register!' );
}
// Check class and method is callable.
if ( is_callable( [ $class, $method ] ) ) {
$data = call_user_func( [ $class, $method ], $args );
} else {
throw new Exception( 'Error: callback is not callable!' );
}
if ( ! $data instanceof stdClass && ! isset( $data->content ) ) {
throw new Exception( 'Error: data content invalid!' );
}
$response->status = 'success';
$response->message = 'Success!';
$response->data = $data;
} catch ( Throwable $e ) {
$response->status = 'error';
$response->message = $e->getMessage();
}
wp_send_json( $response );
}
}