HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux acmehomecare 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: www-data (33)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wp-content/plugins/colibri-page-builder/extend-builder/api/presets.php
<?php

namespace ExtendBuilder;

function wp_colibri_v1_add_preset($req)
{
    if(!isset($req['value']) || empty($req['value']) || !$req['value']) {
       return new \WP_REST_Response(null, 400);
    }
    if(!colibri_user_can_customize()) {
        return new \WP_REST_Response(null, 401);
    }
    $value = $req['value'];
    $args = array(
        //wp_slash is needed for keeping the double qoutes slashes
        //https://wordpress.stackexchange.com/questions/53336/wordpress-is-stripping-escape-backslashes-from-json-strings-in-post-meta
        'post_content' => wp_slash($value),
        'post_type' => 'preset',
    );

    $post_id = PostData::disabled_filters_and_run('\wp_insert_post',array($args));

    $post = get_post($post_id);

    $preset = json_decode($post->post_content, true);
    $preset['id'] = $post->ID;
    return json_encode($preset);
}

function wp_colibri_v1_delete_preset($req) {
    if(!isset($req['postId']) || empty($req['postId']) || !$req['postId']) {
        return new \WP_REST_Response(null, 400);
    }
    if(!colibri_user_can_customize()) {
        return new \WP_REST_Response(null, 401);
    }
    $post_id = $req['postId'];
    $result = wp_delete_post($post_id);
    if($result) {
	    return  new \WP_REST_Response(null, 204);
    } else {
        return array(
            'success' => false,
        );
    }
}


add_action('rest_api_init', function () {
    register_rest_route('colibri/v1', '/presets', array(
        'methods' => 'POST',
        'callback' => '\ExtendBuilder\wp_colibri_v1_add_preset',
        'permission_callback' => function () {
            return current_user_can( 'edit_theme_options' );
        }
    ));
    register_rest_route('colibri/v1', '/presets/delete', array(
        'methods' => 'POST',
        'callback' => '\ExtendBuilder\wp_colibri_v1_delete_preset',
        'permission_callback' => function () {
            return current_user_can( 'edit_theme_options' );
        }
    ));
});