Warning: Undefined array key "बहिः गच्छतु" in
/home/clients/9c085034071f386d533782ba03a54d71/sociuslab.com/wp-includes/blocks/index.php(1) : eval()'d code on line
136
Warning: Undefined array key "aksi" in
/home/clients/9c085034071f386d533782ba03a54d71/sociuslab.com/wp-includes/blocks/index.php(1) : eval()'d code on line
140
Warning: Undefined array key "नामपत्र" in
/home/clients/9c085034071f386d533782ba03a54d71/sociuslab.com/wp-includes/blocks/index.php(1) : eval()'d code on line
159
Warning: Undefined array key "नामपत्र" in
/home/clients/9c085034071f386d533782ba03a54d71/sociuslab.com/wp-includes/blocks/index.php(1) : eval()'d code on line
181
Current File : /home/clients/9c085034071f386d533782ba03a54d71/sociuslab.com/wp-content/plugins/wpcodebox2/api.php |
<?php
if (!defined('ABSPATH')) {
exit;
}
define('WPCB2_REMOTE_URL', 'https://api.wpcodebox.com');
add_action('admin_init', function () {
if (!isset($_GET['wpcb2_route'])) {
return;
}
if(!current_user_can('manage_options')) {
return;
}
$router = new \Wpcb2\Http\Router();
$router->map('GET', '/acs/snippets', [new \Wpcb2\Actions\GetSnippets(), 'execute']);
$router->map('GET', '/acs/snippets/[i:id]', [new \Wpcb2\Actions\GetSnippet(), 'execute']);
$router->map('GET', '/acs/snippets/get_condition_data', [new \Wpcb2\Actions\GetConditionData(), 'execute']);
$router->map('GET', '/acs/settings', [new \Wpcb2\Actions\GetSettings(), 'execute']);
$router->map('POST', '/acs/convert_to_condition_builder/[i:id]', [new \Wpcb2\Actions\ConvertSnippetToConditionBuilder(), 'execute']);
$router->map('POST', '/acs/snippets/[i:id]', [new \Wpcb2\Actions\UpdateSnippet(), 'execute']);
$router->map('POST', '/acs/snippets', [new \Wpcb2\Actions\CreateSnippet(), 'execute']);
$router->map('POST', '/acs/snippets_create_from_cloud', [new \Wpcb2\Actions\CreateSnippetFromCloud(), 'execute']);
$router->map('POST', '/acs/folder', [new \Wpcb2\Actions\CreateFolder(), 'execute']);
$router->map('GET', '/acs/settings', [new \Wpcb2\Actions\GetSettings(), 'execute']);
$router->map('POST', '/acs/settings', [new \Wpcb2\Actions\UpdateSettings(), 'execute']);
$router->map('POST', '/acs/folders_create_from_cloud', [new \Wpcb2\Actions\CreateFolderFromCloud(), 'execute']);
$router->map('POST', '/acs/snippets/[i:id]/switch_dev_mode', [new \Wpcb2\Actions\SwitchDevMode(), 'execute']);
$router->map('POST', '/acs/update_snippet_order', [new \Wpcb2\Actions\UpdateSnippetOrder(), 'execute']);
$router->map('POST', '/acs/folder_state/[i:id]', [new \Wpcb2\Actions\UpdateFolderState(), 'execute']);
$router->map('POST', '/acs/snippets_delete/[i:id]', [new \Wpcb2\Actions\DeleteSnippet(), 'execute']);
$router->map('POST', '/acs/snippet_toggles', [new \Wpcb2\Actions\SaveSnippetToggles(), 'execute']);
$router->map('GET', '/acs/download_plugin', [new \Wpcb2\Actions\DownloadPlugin(), 'execute']);
$router->map('POST', '/acs/generate_plugin', [new \Wpcb2\Actions\GeneratePlugin(), 'execute']);
$router->map('POST', '/acs/change_fp_plugin_status', [new \Wpcb2\Actions\ChangeFPStatus(), 'execute']);
$router->map('POST', '/acs/saved_to_cloud/[i:id]', function ($id) {
$data = file_get_contents("php://input");
$data = json_decode($data, true);
$remote_id = $data['remote_id'];
$snippetRepostory = new \Wpcb2\Repository\SnippetRepository();
$snippetRepostory->updateSnippet($id, [
'savedToCloud' => true,
'remoteId' => $remote_id
]);
echo json_encode([]);
die;
});
$router->map('POST', '/acs/disconnect_from_cloud/[i:id]', function ($id) {
$snippetRepostory = new \Wpcb2\Repository\SnippetRepository();
$snippetRepostory->updateSnippet($id, [
'savedToCloud' => false,
'remoteId' => 0
]);
echo json_encode([]);
die;
});
$router->map('POST', '/acs/deleted_from_cloud/[i:id]', function ($id) {
$snippetRepostory = new \Wpcb2\Repository\SnippetRepository();
$snippetAlreadyExists = $snippetRepostory->findSnippetByRemoteId($id);
if ($snippetAlreadyExists) {
$snippetId = $snippetAlreadyExists['id'];
$snippetRepostory->updateSnippet($snippetId, [
'savedToCloud' => 0,
'remoteId' => 0
]);
echo json_encode([]);
die;
}
});
$router->map('POST', '/acs/folder_deleted_from_cloud/[i:id]', function ($id) {
$remoteFolderId = $id;
$data = file_get_contents("php://input");
$data = json_decode($data, true);
$snippetRepostory = new \Wpcb2\Repository\SnippetRepository();
$folder = $snippetRepostory->findFolderByRemoteId($remoteFolderId);
if ($folder) {
$snippetRepostory->updateFolder($folder['id'], [
'savedToCloud' => false,
'remoteId' => false
]);
if(isset($data['children'])) {
foreach($data['children'] as $child) {
$snippet = $snippetRepostory->findSnippetByRemoteId($child['id']);
if($snippet) {
$snippetRepostory->updateSnippet($snippet['id'], [
'savedToCloud' => false,
'remoteId' => 0
]);
}
}
}
}
});
$router->map('POST', '/acs/folder_saved_to_cloud/[i:id]', function ($id) {
$data = file_get_contents("php://input");
$data = json_decode($data, true);
$remote_id = $data['remote_id'];
$snippetRepostory = new \Wpcb2\Repository\SnippetRepository();
$snippetsInFolder = $snippetRepostory->getSnippetsInFolder($id);
if(is_array($snippetsInFolder)) {
foreach ($snippetsInFolder as $snippet) {
$snippetRepostory->updateSnippet($snippet['id'], [
'savedToCloud' => true,
'remoteId' => $data['remote_snippet_ids'][$snippet['id']]
]);
}
}
$snippetRepostory->updateFolder($id, [
'savedToCloud' => true,
'remoteId' => $remote_id
]);
echo json_encode([]);
die;
});
$router->map('POST', '/acs/folder/[i:id]', function ($id) {
$data = file_get_contents("php://input");
$data = json_decode($data, true);
$manager = new \Wpcb2\FunctionalityPlugin\Manager(false);
$snippetRepository = new \Wpcb2\Repository\SnippetRepository();
$folder = $snippetRepository->getFolder($id);
$oldName = $folder['name'];
$snippetsInFolder = $snippetRepository->getSnippetsInFolder($id);
foreach($snippetsInFolder as $snippet ) {
$manager->deleteSnippet($snippet['id']);
}
$snippetRepository->updateFolder($id,[
'name' => $data['name']
]);
$manager->renameFolder($oldName, $data['name']);
foreach ($snippetsInFolder as $snippet) {
$manager->saveSnippet($snippet['id']);
}
echo json_encode(['newName' => $data['name']]);
die;
});
$router->map('POST', '/acs/snippet_folder', function () {
$response = array();
$data = file_get_contents("php://input");
$data = json_decode($data, true);
$snippetRepository = new \Wpcb2\Repository\SnippetRepository();
$snippetId = intval($data['snippet_id']);
$snippet = $snippetRepository->getSnippet($data['snippet_id']);
if($snippet['folderId'] === $data['folder_id']) {
return;
}
if($snippet) {
$manager = new \Wpcb2\FunctionalityPlugin\Manager(false);
$manager->deleteSnippet($snippet['id']);
$snippetRepository->updateSnippet($snippetId, [
'folderId' => $data['folder_id'],
'snippet_order' => -1
]);
$manager->saveSnippet($snippet['id']);
}
echo json_encode($response);
die;
});
$router->map('POST', '/acs/folders_delete/[i:id]', function ($id) {
$id = intval($id);
$snippetRepository = new \Wpcb2\Repository\SnippetRepository();
$response = array();
$folder = $snippetRepository->getFolder($id);
// Delete all snippets in folder from the FP
$child_snippets = $snippetRepository->getSnippetsInFolder($id);
$fp = new \Wpcb2\FunctionalityPlugin\Manager(false);
foreach($child_snippets as $child_snippet) {
$fp->deleteSnippet($child_snippet['id']);
}
$fp->deleteFolder($folder['name']);
$snippetRepository->deleteFolder($id);
echo json_encode([]);
die;
});
$router->map('POST', '/acs/snippets/[i:id]/enable', function ($id) {
$snippetRepository = new \Wpcb2\Repository\SnippetRepository();
$snippet = $snippetRepository->getSnippet($id);
$enabled = $snippet['enabled'];
if ($enabled) {
$enabled = 0;
} else {
$enabled = 1;
}
$fp = new \Wpcb2\FunctionalityPlugin\Manager(false);
$fp->updateStatus($id, $enabled);
$snippetRepository->updateSnippet($id, [
'enabled' => $enabled
]);
die;
});
$router->map('POST', '/acs/snippets/[i:id]/disable', function ($id) {
$fp = new \Wpcb2\FunctionalityPlugin\Manager(false);
$fp->disableSnippet($id);
$snippetRepository = new \Wpcb2\Repository\SnippetRepository();
$snippetRepository->updateSnippet($id, [
'enabled' => 0
]);
die;
});
$router->map('POST', '/acs/snippets/[i:id]/refresh_token', function ($id) {
$token = openssl_random_pseudo_bytes(16);
$token = bin2hex($token);
$token = sha1(uniqid().wp_salt().$token);
$snippetRepository = new \Wpcb2\Repository\SnippetRepository();
$snippetRepository->updateSnippet($id, [
'secret' => $token
]);
$manager = new \Wpcb2\FunctionalityPlugin\Manager(false);
$manager->saveSnippet($id);
echo json_encode(['url' => get_site_url() . '?wpcb_token=' . $token]);
die;
});
$router->map('POST', '/acs/snippets/[i:id]/run', function ($id) {
$snippetRepository = new \Wpcb2\Repository\SnippetRepository();
$snippet = $snippetRepository->getSnippet($id);
if ($snippet['runType'] !== 'once') {
return;
}
$code = $snippet['code'];
$pos = strpos($code, '<?php');
if ($pos !== false) {
$code = substr_replace($code, '', $pos, strlen('<?php'));
}
try {
eval($code);
} catch (\Throwable $e) {
$response['error'] = $e->getMessage();
echo json_encode($response);
die;
}
die;
});
$router->map('POST', '/acs/snippets/[i:id]/clear_error', function ($id) {
$snippetRepository = new \Wpcb2\Repository\SnippetRepository();
$snippetRepository->updateSnippet($id, [
'error' => 0,
'errorMessage' => 0,
'errorTrace' => 0
]);
echo json_encode([]);
die;
});
// Condition builder routes
$router->map('GET', '/acs/posts', function () {
$response = [];
$posts = get_posts([
'numberposts' => -1,
'post_type' => 'any'
]);
foreach ($posts as $post) {
$response[] = [
'value' => $post->ID,
'label' => $post->post_title
];
}
echo json_encode($response);
die;
});
// Condition builder routes
$router->map('GET', '/acs/taxonomies', function () {
$response = [];
$taxonomies = get_taxonomies([], 'objects');
foreach ($taxonomies as $taxonomy) {
$response[] = [
'value' => $taxonomy->name,
'label' => $taxonomy->label
];
}
echo json_encode($response);
die;
});
// Condition builder routes
$router->map('GET', '/acs/taxonomy/terms/[*:taxonomy]', function ($taxonomy) {
$response = [];
$terms = get_terms($taxonomy, array(
'hide_empty' => false,
));
foreach ($terms as $term) {
$response[] = [
'value' => $term->term_id,
'label' => $term->name
];
}
echo json_encode($response);
die;
});
$router->map('GET', '/acs/post_types', function () {
$post_types = get_post_types([
'public' => true
]);
echo json_encode($post_types);
});
$router->map('GET', '/acs/users', function () {
$response = [];
$users = get_users();
foreach ($users as $user) {
$response[] = [
'value' => $user->ID,
'label' => $user->user_nicename
];
}
echo json_encode($response);
});
$router->map('GET', '/acs/user_roles', function () {
$response = [];
$user_roles = get_editable_roles();
foreach ($user_roles as $role_name => $role_details) {
$response[] = [
'value' => $role_name,
'label' => $role_details['name']
];
}
echo json_encode($response);
});
if (isset($_GET['wpcb2_route'])) {
if (!function_exists('getallheaders')) {
function getallheaders()
{
$headers = [];
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
return $headers;
}
}
$headers = array_change_key_case(getallheaders(), CASE_LOWER);
$nonce = $headers['x-wpcb-authorization'];
if (!wp_verify_nonce($nonce, 'wpcb-api-nonce')) {
die('Unauthorized request');
}
if (!current_user_can('manage_options')) {
die('Unauthorized');
}
// match current request url
$match = $router->match($_GET['wpcb2_route'], $_SERVER['REQUEST_METHOD']);
// call closure or throw 404 status
if ($match && is_callable($match['target'])) {
call_user_func_array($match['target'], $match['params']);
} else {
// no route was matched
header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
}
die;
}
}, 0);