Notice: include(): Read of 3623 bytes failed with errno=12 Cannot allocate memory in /home/parkwood/public_html/wp-content/plugins/popup-maker/vendor-prefixed/composer/ClassLoader.php on line 576
Notice: include(): Read of 3623 bytes failed with errno=12 Cannot allocate memory in /home/parkwood/public_html/wp-content/plugins/popup-maker/vendor-prefixed/composer/ClassLoader.php on line 576
TA type handler
$cta_types = $this->container->get( 'cta_types' );
$cta_type = $cta_types->get( $settings['type'] );
if ( ! $cta_type ) {
return new \WP_Error( 'invalid_type', __( 'Invalid CTA type', 'popup-maker' ), [ 'status' => 400 ] );
}
// Validate settings using the CTA type's validation method
$validation_result = $cta_type->validate_settings( $settings );
if ( is_array( $validation_result ) ) {
// Merge each field error into a single error.
$error = new \WP_Error();
foreach ( $validation_result as $field_error ) {
$error->add( $field_error->get_error_code(), $field_error->get_error_message(), $field_error->get_error_data() );
}
return $error;
}
if ( is_wp_error( $validation_result ) ) {
return $validation_result;
}
return true;
}
/**
* Prevent access to the popups endpoint.
*
* @param mixed $result Response to replace the requested version with.
* @param \WP_REST_Server $server Server instance.
* @param \WP_REST_Request> $request Request used to generate the response.
* @return mixed
*/
public function rest_pre_dispatch( $result, $server, $request ) {
// Get the route being requested.
$route = $request->get_route();
if ( false === strpos( $route, '/popup-maker/v2' ) ) {
return $result;
}
$current_user_can = true;
// Only proceed if the current user has permission.
if ( false !== strpos( $route, '/popup-maker/v2/popups' ) ) {
$current_user_can = current_user_can( $this->container->get_permission( 'edit_popups' ) );
} elseif ( false !== strpos( $route, '/popup-maker/v2/ctas' ) ) {
$current_user_can = current_user_can( $this->container->get_permission( 'edit_ctas' ) );
}
// Prevent discovery of the endpoints data from unauthorized users.
if ( ! $current_user_can ) {
return new \WP_Error(
'rest_forbidden',
__( 'Access to this endpoint requires authorization.', 'popup-maker' ),
[
'status' => rest_authorization_required_code(),
]
);
}
// Return data to the client to parse.
return $result;
}
/**
* AJAX handler for license status checking.
*
* Legacy handler for license status polling system.
*
* @return void
*/
public function ajax_check_license_status() {
// Verify nonce for security.
if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), 'popup-maker-settings' ) ) {
wp_send_json_error( 'Invalid nonce' );
}
// Check user permissions.
if ( ! current_user_can( $this->container->get_permission( 'edit_popups' ) ) ) {
wp_send_json_error( 'Insufficient permissions' );
}
$license_service = $this->container->get( 'license' );
// Get license status data.
$license_status = $license_service->get_license_status_data();
$license_key = $license_service->get_license_key();
$is_active = $license_service->is_license_active();
// Check if Pro is installed.
$is_pro_installed = $this->container->is_pro_installed();
$is_pro_active = $is_pro_installed && is_plugin_active( 'popup-maker-pro/popup-maker-pro.php' );
$response_data = [
'is_valid' => $is_active,
'license_key' => $license_key,
'status' => $license_service->get_license_status(),
'expires' => ! empty( $license_status['expires'] ) ? $license_status['expires'] : null,
'pro_installed' => $is_pro_installed,
'is_pro_installed' => $is_pro_installed,
'is_pro_active' => $is_pro_active,
];
wp_send_json_success( $response_data );
}
}
Fatal error: Uncaught Error: Class "PopupMaker\Controllers\RestAPI" not found in /home/parkwood/public_html/wp-content/plugins/popup-maker/classes/Plugin/Core.php:49
Stack trace:
#0 /home/parkwood/public_html/wp-content/plugins/popup-maker/classes/Plugin/Container.php(85): PopupMaker\Plugin\Core->registered_controllers()
#1 /home/parkwood/public_html/wp-content/plugins/popup-maker/classes/Plugin/Container.php(38): PopupMaker\Plugin\Container->initiate_controllers()
#2 /home/parkwood/public_html/wp-content/plugins/popup-maker/classes/Plugin/Core.php(29): PopupMaker\Plugin\Container->__construct(Array)
#3 /home/parkwood/public_html/wp-content/plugins/popup-maker/bootstrap.php(115): PopupMaker\Plugin\Core->__construct(Array)
#4 /home/parkwood/public_html/wp-content/plugins/popup-maker/bootstrap.php(131): PopupMaker\plugin_instance()
#5 /home/parkwood/public_html/wp-content/plugins/popup-maker/includes/legacy/class-popup-maker.php(137): PopupMaker\plugin()
#6 /home/parkwood/public_html/wp-content/plugins/popup-maker/includes/legacy/class-popup-maker.php(111): Popup_Maker->setup_constants()
#7 /home/parkwood/public_html/wp-content/plugins/popup-maker/bootstrap.legacy.php(168): Popup_Maker::instance()
#8 /home/parkwood/public_html/wp-content/plugins/popup-maker/bootstrap.legacy.php(125): pum()
#9 /home/parkwood/public_html/wp-includes/class-wp-hook.php(341): pum_init_legacy('')
#10 /home/parkwood/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters(Object(REALLY_SIMPLE_SSL), Array)
#11 /home/parkwood/public_html/wp-includes/plugin.php(522): WP_Hook->do_action(Array)
#12 /home/parkwood/public_html/wp-settings.php(622): do_action('plugins_loaded')
#13 /home/parkwood/public_html/wp-config.php(95): require_once('/home/parkwood/...')
#14 /home/parkwood/public_html/wp-load.php(50): require_once('/home/parkwood/...')
#15 /home/parkwood/public_html/wp-blog-header.php(13): require_once('/home/parkwood/...')
#16 /home/parkwood/public_html/index.php(17): require('/home/parkwood/...')
#17 {main}
thrown in /home/parkwood/public_html/wp-content/plugins/popup-maker/classes/Plugin/Core.php on line 49