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/pages.php
<?php

namespace ExtendBuilder;

function wp_colibri_v1_duplicate_page($req)
{
    if (!colibri_user_can_customize()) {
        return new \WP_REST_Response(null, 401);
    }
    $post_id = is_numeric($req['postId']) ? intval($req['postId']) : null;

    if (!$post_id) {
        return json_encode(array(
            'error' => 'invalid_post_id'
        ));
    }

    $title = sanitize_post_field('post_title', $req['title'], 0, 'db');

    $new_post_id = colibri_duplicate_post_as_draft($post_id, $title);
    $post = get_post($new_post_id);
    $data = (new PageData($post->post_title, get_permalink($post), null, $post->ID))->toArray();
    return json_encode($data);
}


add_action('rest_api_init', function () {
    register_rest_route('colibri/v1', '/pages/duplicate', array(
        'methods' => 'POST',
        'callback' => '\ExtendBuilder\wp_colibri_v1_duplicate_page',
        'permission_callback' => function () {
            return current_user_can('edit_theme_options');
        }
    ));
});