| Current Path : /home/users/unlimited/www/facebook.codeskitter.site/xhr/ |
| Current File : /home/users/unlimited/www/facebook.codeskitter.site/xhr/admin_setting.php |
<?php
use Aws\S3\S3Client;
use Google\Cloud\Storage\StorageClient;
if ($f == 'admin_setting' AND (Wo_IsAdmin() || Wo_IsModerator())) {
if ($s == 'search_in_pages') {
$keyword = Wo_Secure($_POST['keyword']);
$html = '';
if (file_exists('./admin-panel/search-result.php')) {
include_once './admin-panel/search-result.php';
$foundItems = [];
foreach ($pages_search as $item) {
if (strpos(strtolower($item['title']), strtolower($keyword)) !== false) {
$foundItems[] = $item;
}
}
if (!empty($foundItems)) {
foreach ($foundItems as $key => $item) {
$html .= '<a href="' . Wo_LoadAdminLinkSettings($item['link']) . '?highlight=' . $keyword . '"><div style="padding: 5px 2px;">' . $item['page_title']. '</div><div><small style="color: #333;">' . $item['title'] . '</small></div></a>';
}
}
}
else{
$files = scandir('./admin-panel/pages');
$not_allowed_files = array(
'edit-custom-page',
'edit-lang',
'edit-movie',
'edit-profile-field',
'edit-terms-pages',
'manage-permissions'
);
foreach ($files as $key => $file) {
if (file_exists('./admin-panel/pages/' . $file . '/content.phtml') && !in_array($file, $not_allowed_files)) {
$string = file_get_contents('./admin-panel/pages/' . $file . '/content.phtml');
preg_match_all("@(?s)<h2([^<]*)>([^<]*)<\/h2>@", $string, $matches1);
if (!empty($matches1) && !empty($matches1[2])) {
foreach ($matches1[2] as $key => $title) {
if (strpos(strtolower($title), strtolower($keyword)) !== false) {
$page_title = '';
preg_match_all("@(?s)<h2([^<]*)>([^<]*)<\/h2>@", $string, $matches3);
if (!empty($matches3) && !empty($matches3[2])) {
foreach ($matches3[2] as $key => $title2) {
$page_title = $title2;
break;
}
}
$html .= '<a href="' . Wo_LoadAdminLinkSettings($file) . '?highlight=' . $keyword . '"><div style="padding: 5px 2px;">' . $page_title . '</div><div><small style="color: #333;">' . $title . '</small></div></a>';
break;
}
}
}
preg_match_all("@(?s)<label([^<]*)>([^<]*)<\/label>@", $string, $matches2);
if (!empty($matches2) && !empty($matches2[2])) {
foreach ($matches2[2] as $key => $lable) {
if (strpos(strtolower($lable), strtolower($keyword)) !== false) {
$page_title = '';
preg_match_all("@(?s)<h2([^<]*)>([^<]*)<\/h2>@", $string, $matches3);
if (!empty($matches3) && !empty($matches3[2])) {
foreach ($matches3[2] as $key => $title2) {
$page_title = $title2;
break;
}
}
$html .= '<a href="' . Wo_LoadAdminLinkSettings($file) . '?highlight=' . $keyword . '"><div style="padding: 5px 2px;">' . $page_title . '</div><div><small style="color: #333;">' . $lable . '</small></div></a>';
break;
}
}
}
}
}
}
$data = array(
'status' => 200,
'html' => $html
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'get_country_ad') {
$data['status'] = 400;
if (!empty($_POST['id']) && is_numeric($_POST['id']) && $_POST['id'] > 0) {
$data['status'] = 200;
$data['data'] = $wo['countries_ads'][$_POST['id']];
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'get_supported_coins') {
$result = coinpayments_api_call(array('key' => $wo['config']['coinpayments_public_key'],
'version' => '1',
'format' => 'json',
'cmd' => 'rates',
'accepted' => '1'));
$coins = array();
if (!empty($result) && $result['status'] == 200) {
foreach ($result['data'] as $key => $value) {
if ($value['accepted'] == 1 && $value['is_fiat'] == 0) {
$coins[$key] = $key;
}
}
$db->where('name', 'coinpayments_coins')->update(T_CONFIG, array('value' => json_encode($coins)));
header("Content-type: application/json");
echo json_encode(array('status' => 200));
exit();
}
else{
header("Content-type: application/json");
echo json_encode(array('status' => 400,
'message' => $result['message']));
exit();
}
}
if ($s == 'activate-product') {
if (!empty($_POST['id']) && is_numeric($_POST['id']) && $_POST['id'] > 0) {
$id = Wo_Secure($_POST['id']);
$product = Wo_GetProduct($id);
if (empty($product)) {
$data['message'] = 'Please check the details';
}
if (!empty($product)) {
$db->where('id', $id)->update(T_PRODUCTS, array(
'active' => '1'
));
$db->where('product_id', $id)->update(T_POSTS, array(
'active' => 1
));
$notification_data_array = array(
'recipient_id' => $product['user_id'],
'type' => 'admin_notification',
'url' => 'index.php?link1=my-products',
'text' => $wo['lang']['product_approved'],
'type2' => 'approve_product'
);
Wo_RegisterNotification($notification_data_array);
}
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete-review') {
if (!empty($_POST['id']) && is_numeric($_POST['id']) && $_POST['id'] > 0) {
$id = Wo_Secure($_POST['id']);
$db->where('id', $id)->delete(T_PRODUCT_REVIEW);
$images = $db->where('review_id', $id)->get(T_MEDIA);
if (!empty($images)) {
foreach ($images as $key => $value) {
@unlink($value->image);
@Wo_DeleteFromToS3($value->image);
}
}
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_multi_review') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $id) {
if (!empty($id) && is_numeric($id)) {
$db->where('id', $id)->delete(T_PRODUCT_REVIEW);
$images = $db->where('review_id', $id)->get(T_MEDIA);
if (!empty($images)) {
foreach ($images as $key => $value) {
@unlink($value->image);
@Wo_DeleteFromToS3($value->image);
}
}
}
}
}
$data['status'] = 200;
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete-order') {
if (!empty($_POST['id'])) {
$id = Wo_Secure($_POST['id']);
$order = $db->where('id', $id)->getOne(T_USER_ORDERS);
if (!empty($order)) {
$db->where('hash_id', $order->hash_id)->delete(T_USER_ORDERS);
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'change_status') {
if (!empty($_POST['id']) && is_numeric($_POST['id']) && $_POST['id'] > 0 && !empty($_POST['status']) && in_array($_POST['status'], array(
'placed',
'accepted',
'packed',
'shipped',
'delivered',
'canceled'
))) {
$id = Wo_Secure($_POST['id']);
$status = Wo_Secure($_POST['status']);
$db->where('id', $id)->update(T_USER_ORDERS, array(
'status' => $status
));
$order = $db->where('id', $id)->getOne(T_USER_ORDERS);
$notification_data_array = array(
'recipient_id' => $order->user_id,
'type' => 'admin_notification',
'type2' => 'admin_status_changed',
'url' => 'index.php?link1=customer_order&id=' . $order->hash_id,
'time' => time()
);
$db->insert(T_NOTIFICATION, $notification_data_array);
$notification_data_array = array(
'recipient_id' => $order->product_owner_id,
'type' => 'admin_notification',
'type2' => 'admin_status_changed',
'url' => 'index.php?link1=order&id=' . $order->hash_id,
'time' => time()
);
$db->insert(T_NOTIFICATION, $notification_data_array);
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'order_multi_status') {
if (!empty($_POST['ids']) && !empty($_POST['action_type']) && in_array($_POST['action_type'], array(
'placed',
'accepted',
'packed',
'shipped',
'delivered',
'canceled',
'delete'
))) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value)) {
$id = Wo_Secure($value);
$status = Wo_Secure($_POST['action_type']);
if ($_POST['action_type'] == 'delete') {
$order = $db->where('id', $id)->getOne(T_USER_ORDERS);
if (!empty($order)) {
$db->where('hash_id', $order->hash_id)->delete(T_USER_ORDERS);
}
} else {
$db->where('id', $id)->update(T_USER_ORDERS, array(
'status' => $status
));
$order = $db->where('id', $id)->getOne(T_USER_ORDERS);
$notification_data_array = array(
'recipient_id' => $order->user_id,
'type' => 'admin_notification',
'type2' => 'admin_status_changed',
'url' => 'index.php?link1=customer_order&id=' . $order->hash_id,
'time' => time()
);
$db->insert(T_NOTIFICATION, $notification_data_array);
$notification_data_array = array(
'recipient_id' => $order->product_owner_id,
'type' => 'admin_notification',
'type2' => 'admin_status_changed',
'url' => 'index.php?link1=order&id=' . $order->hash_id,
'time' => time()
);
$db->insert(T_NOTIFICATION, $notification_data_array);
$data['status'] = 200;
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'delete_color') {
if (!empty($_POST['id'])) {
$id = Wo_Secure($_POST['id']);
$color = $db->where('id', $id)->getOne(T_COLORS);
if (!empty($color)) {
$db->where('id', $id)->delete(T_COLORS);
$photo_file = $color->image;
if (file_exists($photo_file)) {
@unlink(trim($photo_file));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($photo_file);
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_new_image_post') {
if (!empty($_POST['image_color']) && !empty($_FILES['image'])) {
$fileInfo = array(
'file' => $_FILES["image"]["tmp_name"],
'name' => $_FILES['image']['name'],
'size' => $_FILES["image"]["size"],
'type' => $_FILES["image"]["type"],
'types' => 'jpeg,jpg,png,bmp,gif',
'compress' => false
);
$media = Wo_ShareFile($fileInfo);
if (!empty($media['filename'])) {
$db->insert(T_COLORS, array(
'text_color' => Wo_Secure($_POST['image_color']),
'image' => $media['filename'],
'time' => time()
));
}
$data = array(
'status' => 200
);
} else {
if (!empty($_FILES["image"]["error"]) || !empty($_FILES["image"]["error"])) {
$error = $error_icon . 'The file is too big, please increase your server upload limit in php.ini';
} else {
$error = $error_icon . $wo['lang']['please_check_details'];
}
$data = array(
'status' => 400,
'error' => $error
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_new_color') {
if (!empty($_POST['color_1']) && !empty($_POST['color_2']) && !empty($_POST['color_text'])) {
$db->insert(T_COLORS, array(
'color_1' => Wo_Secure($_POST['color_1']),
'color_2' => Wo_Secure($_POST['color_2']),
'text_color' => Wo_Secure($_POST['color_text']),
'time' => time()
));
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'remove_provider') {
if (!empty($_POST['provider'])) {
if (in_array($_POST['provider'], $wo['config']['providers_array'])) {
foreach ($wo['config']['providers_array'] as $key => $provider) {
if ($provider == $_POST['provider']) {
unset($wo['config']['providers_array'][$key]);
}
}
$saveSetting = Wo_SaveConfig('providers_array', json_encode($wo['config']['providers_array']));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_new_provider') {
if (!empty($_POST['provider'])) {
$wo['config']['providers_array'][] = Wo_Secure($_POST['provider']);
$saveSetting = Wo_SaveConfig('providers_array', json_encode($wo['config']['providers_array']));
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update_lang_status') {
$saveSetting = Wo_SaveConfig($_POST['name'], $_POST['value']);
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'select_currency') {
if (!empty($_POST['currency']) && in_array($_POST['currency'], $wo['config']['currency_array'])) {
$currency = Wo_Secure($_POST['currency']);
$saveSetting = Wo_SaveConfig('currency', $currency);
$saveSetting = Wo_SaveConfig('ads_currency', $currency);
if (in_array($_POST['currency'], $wo['stripe_currency'])) {
$saveSetting = Wo_SaveConfig('stripe_currency', $currency);
}
else{
$saveSetting = Wo_SaveConfig('stripe_currency', 'USD');
}
if (in_array($_POST['currency'], $wo['paypal_currency'])) {
$saveSetting = Wo_SaveConfig('paypal_currency', $currency);
}
else{
$saveSetting = Wo_SaveConfig('paypal_currency', 'USD');
}
if (in_array($_POST['currency'], $wo['2checkout_currency'])) {
$saveSetting = Wo_SaveConfig('2checkout_currency', $currency);
}
else{
$saveSetting = Wo_SaveConfig('2checkout_currency', 'USD');
}
$request = fetchDataFromURL("https://v6.exchangerate-api.com/v6/".$wo['config']['exchangerate_key']."/latest/".$currency);
$exchange = json_decode($request, true);
if (!empty($exchange) && $exchange['result'] == 'success' && !empty($exchange['conversion_rates'])) {
Wo_SaveConfig('exchange', json_encode($exchange['conversion_rates']));
Wo_SaveConfig('exchange_update', (time() + (60 * 60 * 12)));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_new_curreny') {
if (!empty($_POST['currency']) && !empty($_POST['currency_symbol'])) {
$wo['config']['currency_array'][] = Wo_Secure($_POST['currency']);
$wo['config']['currency_symbol_array'][Wo_Secure($_POST['currency'])] = Wo_Secure($_POST['currency_symbol']);
$saveSetting = Wo_SaveConfig('currency_array', json_encode($wo['config']['currency_array']));
$saveSetting = Wo_SaveConfig('currency_symbol_array', json_encode($wo['config']['currency_symbol_array']));
$request = fetchDataFromURL("https://v6.exchangerate-api.com/v6/".$wo['config']['exchangerate_key']."/latest/".$wo['config']['currency']);
$exchange = json_decode($request, true);
if (!empty($exchange) && $exchange['result'] == 'success' && !empty($exchange['conversion_rates'])) {
Wo_SaveConfig('exchange', json_encode($exchange['conversion_rates']));
Wo_SaveConfig('exchange_update', (time() + (60 * 60 * 12)));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'edit_curreny') {
if (!empty($_POST['currency']) && !empty($_POST['currency_symbol']) && in_array($_POST['currency_id'], array_keys($wo['config']['currency_array']))) {
$wo['config']['currency_array'][$_POST['currency_id']] = Wo_Secure($_POST['currency']);
$wo['config']['currency_symbol_array'][Wo_Secure($_POST['currency'])] = Wo_Secure($_POST['currency_symbol']);
$saveSetting = Wo_SaveConfig('currency_array', json_encode($wo['config']['currency_array']));
$saveSetting = Wo_SaveConfig('currency_symbol_array', json_encode($wo['config']['currency_symbol_array']));
$request = fetchDataFromURL("https://v6.exchangerate-api.com/v6/".$wo['config']['exchangerate_key']."/latest/".$wo['config']['currency']);
$exchange = json_decode($request, true);
if (!empty($exchange) && $exchange['result'] == 'success' && !empty($exchange['conversion_rates'])) {
Wo_SaveConfig('exchange', json_encode($exchange['conversion_rates']));
Wo_SaveConfig('exchange_update', (time() + (60 * 60 * 12)));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'remove__curreny') {
if (!empty($_POST['currency'])) {
if (in_array($_POST['currency'], $wo['config']['currency_array'])) {
foreach ($wo['config']['currency_array'] as $key => $currency) {
if ($currency == $_POST['currency']) {
if (in_array($currency, array_keys($wo['config']['currency_symbol_array']))) {
unset($wo['config']['currency_symbol_array'][$currency]);
}
unset($wo['config']['currency_array'][$key]);
}
}
if ($wo['config']['currency'] == $_POST['currency']) {
if (!empty($wo['config']['currency_array'])) {
$saveSetting = Wo_SaveConfig('currency', reset($wo['config']['currency_array']));
$saveSetting = Wo_SaveConfig('ads_currency', reset($wo['config']['currency_array']));
}
}
$saveSetting = Wo_SaveConfig('currency_array', json_encode($wo['config']['currency_array']));
$saveSetting = Wo_SaveConfig('currency_symbol_array', json_encode($wo['config']['currency_symbol_array']));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'approve_receipt') {
if (!empty($_GET['receipt_id'])) {
$id = Wo_Secure($_GET['receipt_id']);
$receipt = $db->where('id', $id)->getOne('bank_receipts', array(
'*'
));
if ($receipt) {
$updated = $db->where('id', $id)->update('bank_receipts', array(
'approved' => 1,
'approved_at' => time()
));
$updated = true;
if ($updated === true) {
if ($receipt->mode == 'wallet') {
$amount = $receipt->price;
$result = mysqli_query($sqlConnect, "UPDATE " . T_USERS . " SET `wallet` = `wallet` + " . $amount . " WHERE `user_id` = '" . $receipt->user_id . "'");
if ($result) {
cache($receipt->user_id, 'users', 'delete');
$create_payment_log = mysqli_query($sqlConnect, "INSERT INTO " . T_PAYMENT_TRANSACTIONS . " (`userid`, `kind`, `amount`, `notes`) VALUES ('" . $receipt->user_id . "', 'WALLET', '" . $amount . "', 'bank receipts')");
}
$notification_data_array = array(
'recipient_id' => $receipt->user_id,
'type' => 'admin_notification',
'url' => 'index.php?link1=wallet',
'text' => $wo['lang']['bank_pro'],
'type2' => 'no_name'
);
Wo_RegisterNotification($notification_data_array);
} elseif ($receipt->mode == 'donate') {
$fund = $db->where('id', $receipt->fund_id)->getOne(T_FUNDING);
if (!empty($fund)) {
$amount = $receipt->price;
$fund_id = $receipt->fund_id;
//$notes = "Doanted to " . mb_substr($fund->title, 0, 100, "UTF-8");
//$notes = str_replace('{text}', mb_substr($fund->title, 0, 100, "UTF-8"), $wo['lang']['trans_doanted_to']);
$notes = mb_substr($fund->title, 0, 100, "UTF-8");
$create_payment_log = mysqli_query($sqlConnect, "INSERT INTO " . T_PAYMENT_TRANSACTIONS . " (`userid`, `kind`, `amount`, `notes`) VALUES ({$receipt->user_id}, 'DONATE', {$amount}, '{$notes}')");
$admin_com = 0;
if (!empty($wo['config']['donate_percentage']) && is_numeric($wo['config']['donate_percentage']) && $wo['config']['donate_percentage'] > 0) {
$admin_com = ($wo['config']['donate_percentage'] * $amount) / 100;
$amount = $amount - $admin_com;
}
$user_data = Wo_UserData($fund->user_id);
$db->where('user_id', $fund->user_id)->update(T_USERS, array(
'balance' => $user_data['balance'] + $amount
));
cache($fund->user_id, 'users', 'delete');
$fund_raise_id = $db->insert(T_FUNDING_RAISE, array(
'user_id' => $receipt->user_id,
'funding_id' => $fund_id,
'amount' => $amount,
'time' => time()
));
$post_data = array(
'user_id' => $receipt->user_id,
'fund_raise_id' => $fund_raise_id,
'time' => time(),
'multi_image_post' => 0
);
$id = Wo_RegisterPost($post_data);
$notification_data_array = array(
'notifier_id' => $receipt->user_id,
'recipient_id' => $fund->user_id,
'type' => 'fund_donate',
'url' => 'index.php?link1=show_fund&id=' . $fund->hashed_id
);
Wo_RegisterNotification($notification_data_array);
$notification_data_array = array(
'recipient_id' => $receipt->user_id,
'type' => 'admin_notification',
'url' => 'index.php?link1=show_fund&id=' . $fund->hashed_id,
'text' => $wo['lang']['bank_pro'],
'type2' => 'no_name'
);
Wo_RegisterNotification($notification_data_array);
}
} else {
$pro_type = $receipt->mode;
$update_array = array(
'is_pro' => 1,
'pro_time' => time(),
'pro_' => 1,
'pro_type' => $pro_type
);
if (in_array($pro_type, array_keys($wo['pro_packages'])) && $wo['pro_packages'][$pro_type]['verified_badge'] == 1) {
$update_array['verified'] = 1;
}
$mysqli = Wo_UpdateUserData($receipt->user_id, $update_array);
$user_data = Wo_UserData($receipt->user_id);
if (!empty($user_data['ref_user_id']) && $wo['config']['affiliate_type'] == 1 && $user_data['referrer'] == 0) {
$amount1 = $receipt->price;
$ref_user_id = $user_data['ref_user_id'];
if ($wo['config']['amount_percent_ref'] > 0) {
if (!empty($ref_user_id) && is_numeric($ref_user_id)) {
$update_user = Wo_UpdateUserData($user_data['user_id'], array(
'referrer' => $ref_user_id,
'src' => 'Referrer'
));
$ref_amount = ($wo['config']['amount_percent_ref'] * $amount1) / 100;
$update_balance = Wo_UpdateBalance($ref_user_id, $ref_amount);
unset($_SESSION['ref']);
}
} else if ($wo['config']['amount_ref'] > 0) {
if (!empty($ref_user_id) && is_numeric($ref_user_id)) {
$update_user = Wo_UpdateUserData($user_data['user_id'], array(
'referrer' => $ref_user_id,
'src' => 'Referrer'
));
$update_balance = Wo_UpdateBalance($ref_user_id, $wo['config']['amount_ref']);
unset($_SESSION['ref']);
}
}
}
$amount1 = $receipt->price;
$notes = $wo['lang']['upgrade_to_pro'] . " " . $receipt->description . " : Bank";
$create_payment_log = mysqli_query($sqlConnect, "INSERT INTO " . T_PAYMENT_TRANSACTIONS . " (`userid`, `kind`, `amount`, `notes`) VALUES ({$wo['user']['user_id']}, 'PRO', {$amount1}, '{$notes}')");
$notification_data_array = array(
'recipient_id' => $receipt->user_id,
'type' => 'admin_notification',
'url' => 'index.php?link1=upgraded',
'text' => $wo['lang']['bank_pro'],
'type2' => 'no_name'
);
Wo_RegisterNotification($notification_data_array);
}
$data = array(
'status' => 200
);
}
}
$data = array(
'status' => 200,
'data' => $receipt
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_receipt') {
if (!empty($_GET['receipt_id'])) {
$user_id = Wo_Secure($_GET['user_id']);
$id = Wo_Secure($_GET['receipt_id']);
$photo_file = Wo_Secure($_GET['receipt_file']);
$receipt = $db->where('id', $id)->getOne('bank_receipts', array(
'*'
));
$notification_data_array = array(
'recipient_id' => $receipt->user_id,
'type' => 'admin_notification',
'url' => 'index.php',
'text' => $wo['lang']['bank_decline'],
'type2' => 'no_name'
);
Wo_RegisterNotification($notification_data_array);
$db->where('id', $id)->delete('bank_receipts');
if (file_exists($photo_file)) {
@unlink(trim($photo_file));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($photo_file);
}
$data = array(
'status' => 200
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_user_posts') {
$data['status'] = 400;
if (!empty($_GET['user_id'])) {
ob_end_clean();
header("Content-Encoding: none");
header("Connection: close");
ignore_user_abort();
ob_start();
header('Content-Type: application/json');
echo json_encode(array(
'status' => 200
));
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
session_write_close();
if (is_callable('fastcgi_finish_request')) {
fastcgi_finish_request();
}
if (is_callable('litespeed_finish_request')) {
litespeed_finish_request();
}
$user_id = Wo_Secure($_GET['user_id']);
Wo_DeleteAllUserPosts($user_id);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_user_articles') {
$data['status'] = 400;
if (!empty($_GET['user_id'])) {
ob_end_clean();
header("Content-Encoding: none");
header("Connection: close");
ignore_user_abort();
ob_start();
header('Content-Type: application/json');
echo json_encode(array(
'status' => 200
));
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
session_write_close();
if (is_callable('fastcgi_finish_request')) {
fastcgi_finish_request();
}
if (is_callable('litespeed_finish_request')) {
litespeed_finish_request();
}
$user_id = Wo_Secure($_GET['user_id']);
$blogs = $db->where('user', $user_id)->get(T_BLOG);
if (!empty($blogs)) {
foreach ($blogs as $key => $value) {
Wo_DeleteMyBlog($value->id);
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_user_stories') {
$data['status'] = 400;
if (!empty($_GET['user_id'])) {
ob_end_clean();
header("Content-Encoding: none");
header("Connection: close");
ignore_user_abort();
ob_start();
header('Content-Type: application/json');
echo json_encode(array(
'status' => 200
));
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
session_write_close();
if (is_callable('fastcgi_finish_request')) {
fastcgi_finish_request();
}
if (is_callable('litespeed_finish_request')) {
litespeed_finish_request();
}
$user_id = Wo_Secure($_GET['user_id']);
$info = $db->where('user_id', $user_id)->get(T_USER_STORY);
if (!empty($info)) {
foreach ($info as $key => $value) {
Wo_DeleteStatus($value->id);
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_user_messages') {
$data['status'] = 400;
if (!empty($_GET['user_id'])) {
ob_end_clean();
header("Content-Encoding: none");
header("Connection: close");
ignore_user_abort();
ob_start();
header('Content-Type: application/json');
echo json_encode(array(
'status' => 200
));
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
session_write_close();
if (is_callable('fastcgi_finish_request')) {
fastcgi_finish_request();
}
if (is_callable('litespeed_finish_request')) {
litespeed_finish_request();
}
$my_id = Wo_Secure($_GET['user_id']);
$query_one = "SELECT id FROM " . T_MESSAGES . " WHERE (`to_id` = '{$my_id}') OR (`from_id` = {$my_id})";
$sql_query_one = mysqli_query($sqlConnect, $query_one);
if (mysqli_num_rows($sql_query_one)) {
while ($sql_fetch_one = mysqli_fetch_assoc($sql_query_one)) {
$deleteMessage = Wo_DeleteMessage($sql_fetch_one['id'], '', $my_id);
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_user_notifications') {
$data['status'] = 400;
if (!empty($_GET['user_id'])) {
ob_end_clean();
header("Content-Encoding: none");
header("Connection: close");
ignore_user_abort();
ob_start();
header('Content-Type: application/json');
echo json_encode(array(
'status' => 200
));
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
session_write_close();
if (is_callable('fastcgi_finish_request')) {
fastcgi_finish_request();
}
if (is_callable('litespeed_finish_request')) {
litespeed_finish_request();
}
$my_id = Wo_Secure($_GET['user_id']);
mysqli_query($sqlConnect, "DELETE FROM " . T_NOTIFICATION . " WHERE `recipient_id` = {$my_id} OR `notifier_id` = {$my_id}");
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'ban_user') {
$data['status'] = 400;
if (!empty($_GET['user_id']) && is_numeric($_GET['user_id'])) {
ob_end_clean();
header("Content-Encoding: none");
header("Connection: close");
ignore_user_abort();
ob_start();
header('Content-Type: application/json');
echo json_encode(array(
'status' => 200
));
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
session_write_close();
if (is_callable('fastcgi_finish_request')) {
fastcgi_finish_request();
}
if (is_callable('litespeed_finish_request')) {
litespeed_finish_request();
}
$user_id = Wo_Secure($_GET['user_id']);
$update_array = array(
'banned' => 1
);
if (!empty($_GET['reason'])) {
$reason = Wo_Secure($_GET['reason']);
$update_array['banned_reason'] = $reason;
}
$info = $db->where('user_id', $user_id)->update(T_USERS, $update_array);
cache($user_id, 'users', 'delete');
$db->where('user_id', $user_id)->update(T_POSTS, array('active' => 0));
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'unban_user') {
$data['status'] = 400;
if (!empty($_GET['user_id']) && is_numeric($_GET['user_id'])) {
$user_id = Wo_Secure($_GET['user_id']);
$update_array = array(
'banned' => 0,
'banned_reason' => ''
);
$db->where('user_id', $user_id)->update(T_USERS, $update_array);
cache($user_id, 'users', 'delete');
$db->where('user_id', $user_id)->update(T_POSTS, array('active' => 1));
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_multi_users') {
if (!empty($_POST['ids']) && !empty($_POST['type']) && in_array($_POST['type'], array(
'activate',
'deactivate',
'delete',
'free',
'star',
'hot',
'ultima',
'vip'
))) {
foreach ($_POST['ids'] as $key => $value) {
if (is_numeric($value) && $value > 0) {
if ($_POST['type'] == 'delete') {
$delete = Wo_DeleteUser(Wo_Secure($value));
} elseif ($_POST['type'] == 'activate') {
$db->where('user_id', Wo_Secure($value));
$update_data = array(
'active' => '1',
'email_code' => ''
);
$update = $db->update(T_USERS, $update_data);
} elseif ($_POST['type'] == 'deactivate') {
$db->where('user_id', Wo_Secure($value));
$update_data = array(
'active' => '0',
'email_code' => ''
);
$update = $db->update(T_USERS, $update_data);
} elseif ($_POST['type'] == 'free') {
$member_type = 0;
$member_pro = 0;
$down = Wo_DownUpgradeUser(Wo_Secure($value));
$update_data = array(
'pro_type' => $member_type,
'is_pro' => $member_pro,
'pro_time' => 0
);
Wo_UpdateUserData(Wo_Secure($value), $update_data);
} elseif ($_POST['type'] == 'star') {
$member_type = 1;
$member_pro = 1;
$time = time();
$update_data = array(
'pro_type' => $member_type,
'is_pro' => $member_pro,
'pro_time' => $time
);
Wo_UpdateUserData(Wo_Secure($value), $update_data);
} elseif ($_POST['type'] == 'hot') {
$member_type = 2;
$member_pro = 1;
$time = time();
$update_data = array(
'pro_type' => $member_type,
'is_pro' => $member_pro,
'pro_time' => $time
);
Wo_UpdateUserData(Wo_Secure($value), $update_data);
} elseif ($_POST['type'] == 'ultima') {
$member_type = 3;
$member_pro = 1;
$time = time();
$update_data = array(
'pro_type' => $member_type,
'is_pro' => $member_pro,
'pro_time' => $time
);
Wo_UpdateUserData(Wo_Secure($value), $update_data);
} elseif ($_POST['type'] == 'vip') {
$member_type = 4;
$member_pro = 1;
$time = time();
$update_data = array(
'pro_type' => $member_type,
'is_pro' => $member_pro,
'pro_time' => $time
);
Wo_UpdateUserData(Wo_Secure($value), $update_data);
}
cache($value, 'users', 'delete');
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_verification') {
if (!empty($_POST['ids']) && !empty($_POST['type']) && in_array($_POST['type'], array(
'verify',
'delete'
))) {
foreach ($_POST['ids'] as $key => $value) {
if (is_numeric($value) && $value > 0) {
$verify = $db->where('id', Wo_Secure($value))->getOne(T_VERIFICATION_REQUESTS);
if ($_POST['type'] == 'delete') {
Wo_DeleteVerificationRequest(Wo_Secure($value));
} elseif ($_POST['type'] == 'verify') {
$id = $verify->user_id;
if (!empty($verify->page_id) && $verify->page_id > 0) {
$id = $verify->page_id;
}
Wo_VerifyUser($id, $verify->id, $verify->type);
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'delete_multi_refund') {
if (!empty($_POST['ids']) && !empty($_POST['type']) && in_array($_POST['type'], array(
'approve',
'delete'
))) {
foreach ($_POST['ids'] as $key => $value) {
if (is_numeric($value) && $value > 0) {
$request = $db->where('id', Wo_Secure($value))->getOne(T_REFUND);
if ($_POST['type'] == 'delete') {
$db->where('id', Wo_Secure($value))->delete(T_REFUND);
$data = array(
'status' => 200
);
if (empty($request->order_hash_id)) {
$notification_data_array = array(
'recipient_id' => $request->user_id,
'type' => 'admin_notification',
'url' => 'index.php?link1=home',
'text' => $wo['lang']['refund_decline'],
'type2' => 'refund_decline'
);
Wo_RegisterNotification($notification_data_array);
} else {
$notification_data_array = array(
'recipient_id' => $request->user_id,
'type' => 'admin_notification',
'url' => 'index.php?link1=customer_order&id=' . $request->order_hash_id,
'text' => $wo['lang']['refund_decline'],
'type2' => 'refund_decline'
);
Wo_RegisterNotification($notification_data_array);
}
} elseif ($_POST['type'] == 'approve') {
if (empty($request->order_hash_id)) {
$price = $wo['pro_packages'][$request->pro_type]['price'];
$db->where('user_id', $request->user_id)->update(T_USERS, array(
'balance' => $db->inc($price),
'is_pro' => 0
));
$notification_data_array = array(
'recipient_id' => $request->user_id,
'type' => 'admin_notification',
'url' => 'index.php?link1=setting&page=payments',
'text' => $wo['lang']['refund_approve'],
'type2' => 'refund_approve'
);
Wo_RegisterNotification($notification_data_array);
} else {
$total_final_price = 0;
$price = 0;
$orders = $db->where('hash_id', $request->order_hash_id)->get(T_USER_ORDERS);
foreach ($orders as $key => $order) {
$db->where('id', $order->product_id)->update(T_PRODUCTS, array(
'units' => $db->inc($order->units)
));
$total_final_price += $order->final_price;
$price += $order->price;
}
$order = $db->where('hash_id', $request->order_hash_id)->getOne(T_USER_ORDERS);
$user = $db->where('user_id', $order->product_owner_id)->update(T_USERS, array(
'balance' => $db->dec($total_final_price)
));
$user = $db->where('user_id', $request->user_id)->update(T_USERS, array(
'wallet' => $db->inc($price)
));
cache($request->user_id, 'users', 'delete');
cache($order->product_owner_id, 'users', 'delete');
$db->where('hash_id', $request->order_hash_id)->update(T_USER_ORDERS, array(
'status' => 'canceled'
));
$notification_data_array = array(
'recipient_id' => $request->user_id,
'type' => 'admin_notification',
'url' => 'index.php?link1=customer_order&id=' . $request->order_hash_id,
'text' => $wo['lang']['refund_approve'],
'type2' => 'refund_approve'
);
Wo_RegisterNotification($notification_data_array);
}
$db->where('id', Wo_Secure($value))->delete(T_REFUND);
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'delete_multi_blog') {
if (!empty($_POST['ids']) && !empty($_POST['type']) && in_array($_POST['type'], array(
'activate',
'deactivate',
'delete'
))) {
foreach ($_POST['ids'] as $key => $value) {
if (is_numeric($value) && $value > 0) {
$post = $db->where('id', Wo_Secure($value))->getOne(T_BLOG);
if ($_POST['type'] == 'delete') {
Wo_DeleteMyBlog(Wo_Secure($value));
} elseif ($_POST['type'] == 'activate') {
if (!empty($post)) {
$db->where('id', Wo_Secure($value))->update(T_BLOG, array(
'active' => '1'
));
$db->where('blog_id', Wo_Secure($value))->update(T_POSTS, array(
'active' => 1
));
$b_post = $db->where('blog_id', Wo_Secure($value))->getOne(T_POSTS);
if (!empty($b_post)) {
Wo_RegisterPoint($b_post->id, "createblog", '+', $b_post->user_id);
}
$notification_data_array = array(
'recipient_id' => $post->user,
'type' => 'admin_notification',
'url' => 'index.php?link1=read-blog&id=' . $post->id,
'text' => $wo['lang']['approve_blog'],
'type2' => 'approve_blog'
);
Wo_RegisterNotification($notification_data_array);
}
} elseif ($_POST['type'] == 'deactivate') {
if (!empty($post)) {
$db->where('id', Wo_Secure($value))->update(T_BLOG, array(
'active' => '0'
));
$db->where('blog_id', Wo_Secure($value))->update(T_POSTS, array(
'active' => 0
));
}
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'delete_multi_post') {
if (!empty($_POST['ids']) && !empty($_POST['type']) && in_array($_POST['type'], array(
'activate',
'deactivate',
'delete'
))) {
foreach ($_POST['ids'] as $key => $value) {
if (is_numeric($value) && $value > 0) {
$post = $db->where('id', Wo_Secure($value))->getOne(T_POSTS);
if ($_POST['type'] == 'delete') {
Wo_DeletePost(Wo_Secure($value));
} elseif ($_POST['type'] == 'activate') {
if (!empty($post)) {
$db->where('id', Wo_Secure($value))->update(T_POSTS, array(
'active' => 1
));
if (!empty($post->blog_id)) {
$db->where('id', $post->blog_id)->update(T_BLOG, array(
'active' => '1'
));
}
$notification_data_array = array(
'recipient_id' => $post->user_id,
'type' => 'admin_notification',
'url' => 'index.php?link1=post&id=' . $post->id,
'text' => $wo['lang']['approve_post'],
'type2' => 'approve_post'
);
Wo_RegisterNotification($notification_data_array);
}
} elseif ($_POST['type'] == 'deactivate') {
if (!empty($post)) {
$db->where('id', Wo_Secure($value))->update(T_POSTS, array(
'active' => 0
));
if (!empty($post->blog_id)) {
$db->where('id', $post->blog_id)->update(T_BLOG, array(
'active' => '0'
));
}
}
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_gender') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && in_array($value, array_keys($wo['genders']))) {
$db->where('lang_key', Wo_Secure($value))->delete(T_LANGS);
$gender = $db->where('gender_id', Wo_Secure($value))->getOne(T_GENDER);
if (!empty($gender)) {
$link = $gender->image;
if (file_exists($link)) {
@unlink(trim($link));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($link);
}
$db->where('gender_id', Wo_Secure($value))->delete(T_GENDER);
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_event') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteEvent($value);
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_category') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value)) {
$types = array(
'page' => T_PAGES_CATEGORY,
'group' => T_GROUPS_CATEGORY,
'blog' => T_BLOGS_CATEGORY,
'product' => T_PRODUCTS_CATEGORY,
'job' => T_JOB_CATEGORY
);
if (!empty($_GET['type']) && in_array($_GET['type'], array_keys($types))) {
if ($value != 'other' && $value != 'all_') {
$lang_key = Wo_Secure($value);
$category = $db->where('lang_key', $lang_key)->getOne($types[$_GET['type']]);
if (!empty($category)) {
$db->where('lang_key', $lang_key)->delete(T_LANGS);
$db->where('lang_key', $lang_key)->delete($types[$_GET['type']]);
if ($_GET['type'] == 'page') {
$db->where('page_category', $category->id)->update(T_PAGES, array(
'page_category' => 1
));
}
if ($_GET['type'] == 'group') {
$db->where('category', $category->id)->update(T_GROUPS, array(
'category' => 1
));
resetCache("groups");
}
if ($_GET['type'] == 'blog') {
$db->where('category', $category->id)->update(T_BLOG, array(
'category' => 1
));
}
if ($_GET['type'] == 'product') {
$db->where('category', $category->id)->update(T_PRODUCTS, array(
'category' => 0
));
}
}
}
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_custom_field') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value)) {
$placement_array = array(
'page',
'group',
'product'
);
if (!empty($_GET['type']) && in_array($_GET['type'], $placement_array)) {
$delete = Wo_DeleteCustomField($value, $_GET['type']);
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_invitation') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteUserInvitation('id', $value);
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_ban') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value)) {
Wo_DeleteBanned(Wo_Secure($value));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_code') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteAdminInvitation('id', $value);
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_page') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteCustomPage($value);
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_ads') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteUserAd($value);
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_sub_category') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value)) {
$types = array(
'page',
'group',
'product'
);
if (!empty($_GET['type']) && in_array($_GET['type'], $types)) {
$lang_key = Wo_Secure($value);
$category = $db->where('lang_key', $lang_key)->where('type', Wo_Secure($_GET['type']))->getOne(T_SUB_CATEGORIES);
if (!empty($category)) {
$db->where('lang_key', $lang_key)->delete(T_LANGS);
$db->where('id', $category->id)->delete(T_SUB_CATEGORIES);
if ($_GET['type'] == 'page') {
$db->where('sub_category', $category->id)->update(T_PAGES, array(
'sub_category' => ''
));
}
if ($_GET['type'] == 'group') {
$db->where('sub_category', $category->id)->update(T_GROUPS, array(
'sub_category' => ''
));
resetCache("groups");
}
if ($_GET['type'] == 'product') {
$db->where('sub_category', $category->id)->update(T_PRODUCTS, array(
'sub_category' => ''
));
}
}
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_section') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteForumSection(Wo_Secure($value));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_game') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteGame(Wo_Secure($value));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_reply') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteThreadReply(Wo_Secure($value));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_movies') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteFilm(Wo_Secure($value));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_thread') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteForumThread(Wo_Secure($value));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_forum') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteForum(Wo_Secure($value));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_page') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeletePage(Wo_Secure($value));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_fund') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value3) {
if (!empty($value3) && is_numeric($value3) && $value3 > 0) {
$id = Wo_Secure($value3);
$fund = $db->where('id', $id)->getOne(T_FUNDING);
if (!empty($fund)) {
@Wo_DeleteFromToS3($fund->image);
if (file_exists($fund->image)) {
try {
unlink($fund->image);
}
catch (Exception $e) {
}
}
$db->where('id', $id)->delete(T_FUNDING);
$raise = $db->where('funding_id', $id)->get(T_FUNDING_RAISE);
$db->where('funding_id', $id)->delete(T_FUNDING_RAISE);
$posts = $db->where('fund_id', $id)->get(T_POSTS);
if (!empty($posts)) {
foreach ($posts as $key => $value) {
$db->where('parent_id', $value->id)->delete(T_POSTS);
}
}
$db->where('fund_id', $id)->delete(T_POSTS);
foreach ($raise as $key => $value) {
$raise_posts = $db->where('fund_raise_id', $value->id)->get(T_POSTS);
if (!empty($raise_posts)) {
foreach ($posts as $key => $value1) {
$db->where('parent_id', $value1->id)->delete(T_POSTS);
}
}
$db->where('fund_raise_id', $value->id)->delete(T_POSTS);
}
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_offer') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
$offer_id = Wo_Secure($value);
$offer = $db->where('id', $offer_id)->getOne(T_OFFER);
if (!empty($offer)) {
if (!empty($offer->image)) {
@unlink($offer->image);
Wo_DeleteFromToS3($offer->image);
}
}
$db->where('id', $offer_id)->delete(T_OFFER);
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_job') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
$job_id = Wo_Secure($value);
$job = $db->where('id', $job_id)->getOne(T_JOB);
if (!empty($job)) {
if ($job->image_type != 'cover') {
@unlink($job->image);
Wo_DeleteFromToS3($job->image);
}
}
$db->where('id', $job_id)->delete(T_JOB);
$db->where('job_id', $job_id)->delete(T_JOB_APPLY);
$post = $db->where('job_id', $job_id)->getOne(T_POSTS);
if (!empty($post)) {
Wo_DeletePost($post->id);
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_group') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteGroup(Wo_Secure($value));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_app') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteApp($value);
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_gift') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteGift($value);
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_sticker') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (!empty($value) && is_numeric($value) && $value > 0) {
Wo_DeleteSticker($value);
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'remove_multi_payment') {
if (!empty($_POST['ids']) && !empty($_POST['type']) && in_array($_POST['type'], array(
'paid',
'decline',
'delete'
))) {
foreach ($_POST['ids'] as $key => $value) {
if (is_numeric($value) && $value > 0) {
$get_payment_info = Wo_GetPaymentHistory(Wo_Secure($value));
if ($_POST['type'] == 'delete') {
if (!empty($get_payment_info)) {
$id = $get_payment_info['id'];
$update = mysqli_query($sqlConnect, "UPDATE " . T_A_REQUESTS . " SET status = '2' WHERE id = {$id}");
if ($update) {
$body = Wo_LoadPage('emails/payment-declined');
$body = str_replace('{{name}}', $get_payment_info['user']['name'], $body);
$body = str_replace('{{amount}}', $get_payment_info['amount'], $body);
$body = str_replace('{{site_name}}', $config['siteName'], $body);
$send_message_data = array(
'from_email' => $wo['config']['siteEmail'],
'from_name' => $wo['config']['siteName'],
'to_email' => $get_payment_info['user']['email'],
'to_name' => $get_payment_info['user']['name'],
'subject' => 'Payment Declined | ' . $wo['config']['siteName'],
'charSet' => 'utf-8',
'message_body' => $body,
'is_html' => true
);
$send_message = Wo_SendMessage($send_message_data);
$notification_data_array = array(
'recipient_id' => $get_payment_info['user_id'],
'type' => 'admin_notification',
'url' => 'index.php?link1=setting&page=payments',
'text' => $wo['lang']['withdraw_declined'],
'type2' => 'withdraw_declined'
);
Wo_RegisterNotification($notification_data_array);
}
}
$db->where('id', Wo_Secure($value))->delete(T_A_REQUESTS);
} elseif ($_POST['type'] == 'decline') {
if (!empty($get_payment_info)) {
$id = $get_payment_info['id'];
$update = mysqli_query($sqlConnect, "UPDATE " . T_A_REQUESTS . " SET status = '2' WHERE id = {$id}");
if ($update) {
$body = Wo_LoadPage('emails/payment-declined');
$body = str_replace('{{name}}', $get_payment_info['user']['name'], $body);
$body = str_replace('{{amount}}', $get_payment_info['amount'], $body);
$body = str_replace('{{site_name}}', $config['siteName'], $body);
$send_message_data = array(
'from_email' => $wo['config']['siteEmail'],
'from_name' => $wo['config']['siteName'],
'to_email' => $get_payment_info['user']['email'],
'to_name' => $get_payment_info['user']['name'],
'subject' => 'Payment Declined | ' . $wo['config']['siteName'],
'charSet' => 'utf-8',
'message_body' => $body,
'is_html' => true
);
$send_message = Wo_SendMessage($send_message_data);
$notification_data_array = array(
'recipient_id' => $get_payment_info['user_id'],
'type' => 'admin_notification',
'url' => 'index.php?link1=setting&page=payments',
'text' => $wo['lang']['withdraw_declined'],
'type2' => 'withdraw_declined'
);
Wo_RegisterNotification($notification_data_array);
}
}
} elseif ($_POST['type'] == 'paid') {
if (!empty($get_payment_info)) {
$id = $get_payment_info['id'];
$update = mysqli_query($sqlConnect, "UPDATE " . T_A_REQUESTS . " SET status = '1' WHERE id = {$id}");
if ($update) {
$body = Wo_LoadPage('emails/payment-sent');
$body = str_replace('{{name}}', $get_payment_info['user']['name'], $body);
$body = str_replace('{{amount}}', $get_payment_info['amount'], $body);
$body = str_replace('{{site_name}}', $config['siteName'], $body);
$send_message_data = array(
'from_email' => $wo['config']['siteEmail'],
'from_name' => $wo['config']['siteName'],
'to_email' => $get_payment_info['user']['email'],
'to_name' => $get_payment_info['user']['name'],
'subject' => 'New Payment | ' . $wo['config']['siteName'],
'charSet' => 'utf-8',
'message_body' => $body,
'is_html' => true
);
$send_message = Wo_SendMessage($send_message_data);
$notification_data_array = array(
'recipient_id' => $get_payment_info['user_id'],
'type' => 'admin_notification',
'url' => 'index.php?link1=setting&page=payments',
'text' => $wo['lang']['withdraw_approve'],
'type2' => 'withdraw_approve'
);
Wo_RegisterNotification($notification_data_array);
Wo_UpdateBalance($get_payment_info['user_id'], $get_payment_info['amount'], '-','withdrawal');
}
}
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'delete_multi_report') {
if (!empty($_POST['ids']) && !empty($_POST['type']) && in_array($_POST['type'], array(
'safe',
'delete',
'ban'
))) {
foreach ($_POST['ids'] as $key => $value) {
if (is_numeric($value) && $value > 0) {
$report = $db->where('id', Wo_Secure($value))->getOne(T_REPORTS);
if ($_POST['type'] == 'delete') {
if ($report->post_id != 0) {
Wo_DeletePost($report->post_id);
Wo_DeleteReport($report->id);
} else if ($report->profile_id != 0) {
Wo_DeleteUser($report->profile_id);
Wo_DeleteReport($report->id);
} else if ($report->page_id != 0) {
Wo_DeletePage($report->page_id);
Wo_DeleteReport($report->id);
} else if ($report->group_id != 0) {
Wo_DeleteGroup($report->group_id);
Wo_DeleteReport($report->id);
} else if ($report->comment_id != 0) {
Wo_DeletePostComment($report->comment_id);
Wo_DeleteReport($report->id);
}
} elseif ($_POST['type'] == 'safe') {
Wo_DeleteReport($report->id);
} elseif ($_POST['type'] == 'ban') {
$update_array = array(
'banned' => 1
);
$info = $db->where('user_id', $report->profile_id)->update(T_USERS, $update_array);
cache($report->profile_id, 'users', 'delete');
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
// category
if ($s == 'add_new_category') {
$data['status'] = 400;
$data['message'] = 'Please check your details';
$types = array(
'page' => T_PAGES_CATEGORY,
'group' => T_GROUPS_CATEGORY,
'blog' => T_BLOGS_CATEGORY,
'product' => T_PRODUCTS_CATEGORY,
'job' => T_JOB_CATEGORY
);
if (!empty($_GET['type']) && in_array($_GET['type'], array_keys($types))) {
$add = false;
$insert_data = array();
foreach (Wo_LangsNamesFromDB() as $key => $lang) {
if (!empty($_POST[$lang])) {
$insert_data[$lang] = Wo_Secure($_POST[$lang]);
$add = true;
}
}
if ($add == true && !empty($insert_data)) {
$insert_data['type'] = 'category';
$id = $db->insert(T_LANGS, $insert_data);
$db->insert($types[$_GET['type']], array(
'lang_key' => $id
));
$db->where('id', $id)->update(T_LANGS, array(
'lang_key' => $id
));
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'get_category_langs' && !empty($_POST['lang_key'])) {
$data['status'] = 400;
$html = '';
$langs = Wo_GetLangDetails($_POST['lang_key']);
if (count($langs) > 0) {
foreach ($langs as $key => $wo['langs']) {
foreach ($wo['langs'] as $wo['key_'] => $wo['lang_vlaue']) {
$html .= Wo_LoadAdminPage('edit-lang/form-list');
}
}
$data['status'] = 200;
$data['html'] = $html;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_category' && !empty($_POST['lang_key'])) {
$types = array(
'page' => T_PAGES_CATEGORY,
'group' => T_GROUPS_CATEGORY,
'blog' => T_BLOGS_CATEGORY,
'product' => T_PRODUCTS_CATEGORY,
'job' => T_JOB_CATEGORY
);
if (!empty($_GET['type']) && in_array($_GET['type'], array_keys($types))) {
if ($_POST['lang_key'] != 'other' && $_POST['lang_key'] != 'all_') {
$lang_key = Wo_Secure($_POST['lang_key']);
$category = $db->where('lang_key', $lang_key)->getOne($types[$_GET['type']]);
if (!empty($category)) {
$db->where('lang_key', $lang_key)->delete(T_LANGS);
$db->where('lang_key', $lang_key)->delete($types[$_GET['type']]);
if ($_GET['type'] == 'page') {
$db->where('page_category', $category->id)->update(T_PAGES, array(
'page_category' => 1
));
}
if ($_GET['type'] == 'group') {
$db->where('category', $category->id)->update(T_GROUPS, array(
'category' => 1
));
resetCache("groups");
}
if ($_GET['type'] == 'blog') {
$db->where('category', $category->id)->update(T_BLOG, array(
'category' => 1
));
}
if ($_GET['type'] == 'product') {
$db->where('category', $category->id)->update(T_PRODUCTS, array(
'category' => 0
));
}
$data['status'] = 200;
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
// category
// manage packages
if ($s == 'add_pro_package') {
$data['status'] = 400;
if (!empty($_POST['name']) && !empty($_POST['color']) && !empty($_POST['time']) && in_array($_POST['time'], array('day','week','month','year','unlimited')) && !empty($_FILES['icon']) && !empty($_FILES['night_icon']) && !empty($_POST['max_upload'])) {
$night_icon = '';
$icon = '';
if (!empty($_FILES['icon'])) {
$fileInfo = array(
'file' => $_FILES["icon"]["tmp_name"],
'name' => $_FILES['icon']['name'],
'size' => $_FILES["icon"]["size"],
'type' => $_FILES["icon"]["type"],
'types' => 'jpeg,png,jpg,gif,svg',
'crop' => array(
'width' => 32,
'height' => 32
)
);
$media = Wo_ShareFile($fileInfo);
if (!empty($media) && !empty($media['filename'])) {
$icon = $media['filename'];
}
else{
$data['message'] = 'please select another icon';
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if (!empty($_FILES['night_icon'])) {
$fileInfo = array(
'file' => $_FILES["night_icon"]["tmp_name"],
'name' => $_FILES['night_icon']['name'],
'size' => $_FILES["night_icon"]["size"],
'type' => $_FILES["night_icon"]["type"],
'types' => 'jpeg,png,jpg,gif,svg',
'crop' => array(
'width' => 32,
'height' => 32
)
);
$media = Wo_ShareFile($fileInfo);
if (!empty($media) && !empty($media['filename'])) {
$night_icon = $media['filename'];
}
else{
$data['message'] = 'please select another night icon';
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($_POST['time'] != 'unlimited' && (empty($_POST['count']) || !is_numeric($_POST['count']))) {
$data['message'] = 'Please select paid time';
header("Content-type: application/json");
echo json_encode($data);
exit();
}
$insert_data = array('price' => (!empty($_POST['price']) && is_numeric($_POST['price']) ? Wo_Secure($_POST['price']) : 0),
'featured_member' => (!empty($_POST['featured_member']) && is_numeric($_POST['featured_member']) ? Wo_Secure($_POST['featured_member']) : 0),
'profile_visitors' => (!empty($_POST['profile_visitors']) && is_numeric($_POST['profile_visitors']) ? Wo_Secure($_POST['profile_visitors']) : 0),
'last_seen' => (!empty($_POST['last_seen']) && is_numeric($_POST['last_seen']) ? Wo_Secure($_POST['last_seen']) : 0),
'verified_badge' => (!empty($_POST['verified_badge']) && is_numeric($_POST['verified_badge']) ? Wo_Secure($_POST['verified_badge']) : 0),
'pages_promotion' => (!empty($_POST['pages_promotion']) && is_numeric($_POST['pages_promotion']) ? Wo_Secure($_POST['pages_promotion']) : 0),
'posts_promotion' => (!empty($_POST['posts_promotion']) && is_numeric($_POST['posts_promotion']) ? Wo_Secure($_POST['posts_promotion']) : 0),
'description' => (!empty($_POST['description']) ? Wo_Secure($_POST['description']) : ''),
'status' => (!empty($_POST['status']) && is_numeric($_POST['status']) ? Wo_Secure($_POST['status']) : 0),
'discount' => (!empty($_POST['discount']) && is_numeric($_POST['discount']) ? Wo_Secure($_POST['discount']) : 0),
'time_count' => (!empty($_POST['count']) && is_numeric($_POST['count']) ? Wo_Secure($_POST['count']) : 0),
'type' => Wo_Secure($_POST['name']),
'color' => Wo_Secure($_POST['color']),
'image' => $icon,
'night_image' => $night_icon,
'time' => Wo_Secure($_POST['time']),
'max_upload' => Wo_Secure($_POST['max_upload']),
);
$db->insert(T_MANAGE_PRO,$insert_data);
$data['message'] = 'Pro package added successfully';
$data['status'] = 200;
}
else{
if (empty($_POST['name'])) {
$data['message'] = 'name can not be empty';
}
elseif (empty($_POST['color'])) {
$data['message'] = 'color can not be empty';
}
elseif (empty($_POST['time'])) {
$data['message'] = 'Please select paid time';
}
elseif (empty($_FILES['icon'])) {
$data['message'] = 'icon can not be empty';
}
elseif (empty($_FILES['night_icon'])) {
$data['message'] = 'night icon can not be empty';
}
elseif (empty($_POST['max_upload'])) {
$data['message'] = 'max upload size can not be empty';
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update_pro_member') {
$data['status'] = 400;
$html = '';
if (in_array($_POST['type'], array_keys($wo["pro_packages"]))) {
if (!empty($_POST['name']) && !empty($_POST['color']) && !empty($_POST['time']) && in_array($_POST['time'], array('day','week','month','year','unlimited')) && !empty($_POST['max_upload'])) {
$update_array = array();
if (!empty($_FILES['icon'])) {
$fileInfo = array(
'file' => $_FILES["icon"]["tmp_name"],
'name' => $_FILES['icon']['name'],
'size' => $_FILES["icon"]["size"],
'type' => $_FILES["icon"]["type"],
'types' => 'jpeg,png,jpg,gif,svg',
'crop' => array(
'width' => 32,
'height' => 32
)
);
$media = Wo_ShareFile($fileInfo);
if (!empty($media) && !empty($media['filename'])) {
$update_array['image'] = $media['filename'];
}
else{
$data['message'] = 'please select another icon';
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if (!empty($_FILES['night_icon'])) {
$fileInfo = array(
'file' => $_FILES["night_icon"]["tmp_name"],
'name' => $_FILES['night_icon']['name'],
'size' => $_FILES["night_icon"]["size"],
'type' => $_FILES["night_icon"]["type"],
'types' => 'jpeg,png,jpg,gif,svg',
'crop' => array(
'width' => 32,
'height' => 32
)
);
$media = Wo_ShareFile($fileInfo);
if (!empty($media) && !empty($media['filename'])) {
$update_array['night_image'] = $media['filename'];
}
else{
$data['message'] = 'please select another night icon';
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($_POST['time'] != 'unlimited' && (empty($_POST['count']) || !is_numeric($_POST['count']))) {
$data['message'] = 'Please select paid time';
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if (!empty($_POST['icon_to_use']) && $_POST['icon_to_use'] == 1 && in_array($_POST['type'],array(1,2,3,4))) {
$link = substr($wo['pro_packages'][$_POST['type']]['image'], strpos($wo['pro_packages'][$_POST['type']]['image'], 'upload/'));
if (file_exists($link)) {
@unlink(trim($link));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($link);
}
$update_array['image'] = '';
$link = substr($wo['pro_packages'][$_POST['type']]['night_image'], strpos($wo['pro_packages'][$_POST['type']]['night_image'], 'upload/'));
if (file_exists($link)) {
@unlink(trim($link));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($link);
}
$update_array['night_image'] = '';
}
$update_array['price'] = (!empty($_POST['price']) && is_numeric($_POST['price']) ? Wo_Secure($_POST['price']) : 0);
$update_array['featured_member'] = (!empty($_POST['featured_member']) && is_numeric($_POST['featured_member']) ? Wo_Secure($_POST['featured_member']) : 0);
$update_array['profile_visitors'] = (!empty($_POST['profile_visitors']) && is_numeric($_POST['profile_visitors']) ? Wo_Secure($_POST['profile_visitors']) : 0);
$update_array['last_seen'] = (!empty($_POST['last_seen']) && is_numeric($_POST['last_seen']) ? Wo_Secure($_POST['last_seen']) : 0);
$update_array['verified_badge'] = (!empty($_POST['verified_badge']) && is_numeric($_POST['verified_badge']) ? Wo_Secure($_POST['verified_badge']) : 0);
$update_array['pages_promotion'] = (!empty($_POST['pages_promotion']) && is_numeric($_POST['pages_promotion']) ? Wo_Secure($_POST['pages_promotion']) : 0);
$update_array['posts_promotion'] = (!empty($_POST['posts_promotion']) && is_numeric($_POST['posts_promotion']) ? Wo_Secure($_POST['posts_promotion']) : 0);
$update_array['description'] = (!empty($_POST['description']) ? Wo_Secure($_POST['description']) : '');
$update_array['status'] = (!empty($_POST['status']) && is_numeric($_POST['status']) ? Wo_Secure($_POST['status']) : 0);
$update_array['time_count'] = (!empty($_POST['count']) && is_numeric($_POST['count']) ? Wo_Secure($_POST['count']) : 0);
$update_array['discount'] = (!empty($_POST['discount']) && is_numeric($_POST['discount']) ? Wo_Secure($_POST['discount']) : 0);
$update_array['type'] = Wo_Secure($_POST['name']);
$update_array['color'] = Wo_Secure($_POST['color']);
$update_array['time'] = Wo_Secure($_POST['time']);
$update_array['max_upload'] = Wo_Secure($_POST['max_upload']);
$db->where('id',Wo_Secure($_POST['type']))->update(T_MANAGE_PRO,$update_array);
$data['status'] = 200;
}
else{
if (empty($_POST['name'])) {
$data['message'] = 'name can not be empty';
}
elseif (empty($_POST['color'])) {
$data['message'] = 'color can not be empty';
}
elseif (empty($_POST['time'])) {
$data['message'] = 'Please select paid time';
}
elseif (empty($_POST['max_upload'])) {
$data['message'] = 'max upload size can not be empty';
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_pro_package') {
if (!empty($_GET['id']) && is_numeric($_GET['id']) && in_array($_GET['id'], array_keys($wo["pro_packages"]))) {
$link = substr($wo['pro_packages'][$_GET['id']]['night_image'], strpos($wo['pro_packages'][$_GET['id']]['night_image'], 'upload/'));
if (file_exists($link)) {
@unlink(trim($link));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($link);
}
$link = substr($wo['pro_packages'][$_GET['id']]['image'], strpos($wo['pro_packages'][$_GET['id']]['image'], 'upload/'));
if (file_exists($link)) {
@unlink(trim($link));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($link);
}
$db->where('id',Wo_Secure($_GET['id']))->delete(T_MANAGE_PRO);
}
$data['status'] = 200;
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'select_pro_package') {
$data['status'] = 200;
if (!empty($_POST['feature_type'])) {
foreach ($wo["pro_packages"] as $key => $value) {
if (!empty($value['features']) && in_array('pro_'.$key, array_keys($_POST)) && in_array($_POST['pro_'.$key],array(0,1))) {
$js = json_decode($value['features'],true);
$js[Wo_Secure($_POST['feature_type'])] = Wo_Secure($_POST['pro_'.$key]);
$db->where('id',$key)->update(T_MANAGE_PRO,array('features' => json_encode($js)));
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'select_pro_model') {
$wo['feature_type'] = Wo_Secure($_GET['type']);
$data['status'] = 200;
$data['html'] = Wo_LoadAdminPage('pro-settings/pro_model');
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'get_pro') {
$html = '';
if (in_array($_POST['type'], array_keys($wo["pro_packages"]))) {
$wo['pro'] = $wo["pro_packages"][$_POST['type']];
$html .= Wo_LoadAdminPage('pro-settings/pro_form');
}
$data['status'] = 200;
$data['html'] = $html;
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'approve_post') {
if (!empty($_POST['post_id'])) {
$post = $db->where('id', Wo_Secure($_POST['post_id']))->getOne(T_POSTS);
if (!empty($post)) {
$db->where('id', Wo_Secure($_POST['post_id']))->update(T_POSTS, array(
'active' => 1
));
if (!empty($post->blog_id)) {
$db->where('id', $post->blog_id)->update(T_BLOG, array(
'active' => '1'
));
}
$notification_data_array = array(
'recipient_id' => $post->user_id,
'type' => 'admin_notification',
'url' => 'index.php?link1=post&id=' . $post->id,
'text' => $wo['lang']['approve_post'],
'type2' => 'approve_post'
);
Wo_RegisterNotification($notification_data_array);
}
}
$data['status'] = 200;
header("Content-type: application/json");
echo json_encode($data);
exit();
}
// manage packages
if ($s == 'test_vision_api') {
$data['status'] = 400;
if (!empty($wo['config']['vision_api_key'])) {
$image_file = Wo_GetMedia('upload/photos/d-avatar.jpg');
$content = '{"requests": [{"image": {"source": {"imageUri": "' . $image_file . '"}},"features": [{"type": "SAFE_SEARCH_DETECTION","maxResults": 1},{"type": "WEB_DETECTION","maxResults": 2}]}]}';
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://vision.googleapis.com/v1/images:annotate?key=' . $wo['config']['vision_api_key']);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($content)
));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$new_data = json_decode($response);
if (!empty($new_data->error)) {
$data['message'] = $new_data->error->message;
}
else if (!empty($new_data->responses[0]->error)) {
$data['message'] = $new_data->responses[0]->error->message;
} elseif ($new_data->responses[0]->safeSearchAnnotation->adult == 'LIKELY' || $new_data->responses[0]->safeSearchAnnotation->adult == 'VERY_LIKELY' || $new_data->responses[0]->safeSearchAnnotation->adult == 'UNKNOWN' || $new_data->responses[0]->safeSearchAnnotation->adult == 'VERY_UNLIKELY' || $new_data->responses[0]->safeSearchAnnotation->adult == 'UNLIKELY' || $new_data->responses[0]->safeSearchAnnotation->adult == 'POSSIBLE') {
$data['status'] = 200;
$data['message'] = 'Connection was successfully established!';
} else {
$data['message'] = 'Something went wrong, please try again later.';
}
}
catch (Exception $e) {
$data['message'] = $e->getMessage();
}
} else {
$data['message'] = 'Vision api key can not be empty.';
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'top_up_wallet') {
if (!empty($_POST['amount'])) {
$update = Wo_UpdateUserData($wo['user']['user_id'], array(
'wallet' => $_POST['amount']
));
if ($update) {
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_followers') {
$data = array();
$data['status'] = 200;
$data['error'] = false;
if (empty($_POST['followers']) || empty($_POST['user_id'])) {
$data['status'] = 500;
$data['error'] = $wo['lang']['please_check_details'];
}
if (!is_numeric($_POST['followers']) || !is_numeric($_POST['user_id'])) {
$data['status'] = 500;
$data['error'] = 'Numbers only are allowed';
}
if ($_POST['followers'] < 0 || $_POST['user_id'] < 0) {
$data['status'] = 500;
$data['error'] = 'Integer numbers only are allowed';
}
$userData = Wo_UserData($_POST['user_id']);
if (empty($data['error']) && $data['status'] != 500) {
$followers = floor($_POST['followers']);
$usersCount = $db->getValue(T_USERS, 'COUNT(*)');
if ($followers > $usersCount) {
$data['status'] = 500;
$data['error'] = "Followers can't be more than your users: $usersCount";
}
if ($db->getValue(T_USERS, "MAX(user_id)") <= $userData['last_follow_id']) {
$data['status'] = 500;
$data['error'] = "No more users left to follow, all the users are following {$userData['name']}.";
}
}
if (empty($data['error']) && $data['error'] != 500) {
$users_id = array();
$users = $db->where('user_id', $userData['last_follow_id'], ">")->get(T_USERS, $followers, 'user_id');
foreach ($users as $key => $i) {
$users_id[] = $i->user_id;
}
if (empty($data['error']) && $data['status'] != 500 && !empty($users_id)) {
ob_end_clean();
header("Content-Encoding: none");
header("Connection: close");
ignore_user_abort();
ob_start();
header('Content-Type: application/json');
echo json_encode(array(
'status' => 200
));
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
session_write_close();
if (is_callable('fastcgi_finish_request')) {
fastcgi_finish_request();
}
if (is_callable('litespeed_finish_request')) {
litespeed_finish_request();
}
$followed = Wo_RegisterFollow($_POST['user_id'], $users_id);
$user_data = Wo_UpdateUserDetails($_POST['user_id'], false, false, true);
$update_user = $db->where('user_id', $_POST['user_id'])->update(T_USERS, array(
"last_follow_id" => Wo_Secure(end($users_id))
));
cache($_POST['user_id'], 'users', 'delete');
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update_custom_code') {
$data = array(
'status' => 400
);
$theme = $wo['config']['theme'];
$request = (isset($_POST['cheader']) && isset($_POST['cfooter']) && isset($_POST['css']));
if ($request === true) {
if (is_writable("themes/$theme/custom")) {
$up_data = array(
$_POST['cheader'],
$_POST['cfooter'],
$_POST['css']
);
$save = Wo_CustomCode('p', $up_data);
$data['status'] = 200;
} else {
$data['status'] = 500;
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'verfiy_apps') {
$arrContextOptions = array(
"ssl" => array(
"verify_peer" => false,
"verify_peer_name" => false
)
);
$data['android_status'] = 0;
$data['windows_status'] = 0;
$data['android_native_status'] = 0;
if (!empty($_POST['android_purchase_code'])) {
$android_code = Wo_Secure($_POST['android_purchase_code']);
$file = file_get_contents("http://www.wowonder.com/access_token.php?code={$android_code}&type=android", false, stream_context_create($arrContextOptions));
$check = json_decode($file, true);
if (!empty($check['status'])) {
if ($check['status'] == 'SUCCESS') {
$update = Wo_SaveConfig('footer_background', '#aaa');
$data['android_status'] = 200;
} else {
$data['android_status'] = 400;
$data['android_text'] = $check['ERROR_NAME'];
}
}
}
if (!empty($_POST['android_native_purchase_code'])) {
$android_code = Wo_Secure($_POST['android_native_purchase_code']);
$file = file_get_contents("http://www.wowonder.com/access_token.php?code={$android_code}&type=android", false, stream_context_create($arrContextOptions));
$check = json_decode($file, true);
if (!empty($check['status'])) {
if ($check['status'] == 'SUCCESS') {
$update = Wo_SaveConfig('footer_background_n', '#aaa');
$data['android_native_status'] = 200;
} else {
$data['android_native_status'] = 400;
$data['android_text'] = $check['ERROR_NAME'];
}
}
}
if (!empty($_POST['windows_purchase_code'])) {
$windows_code = Wo_Secure($_POST['windows_purchase_code']);
$file = file_get_contents("http://www.wowonder.com/access_token.php?code={$windows_code}&type=windows_desktop", false, stream_context_create($arrContextOptions));
$check = json_decode($file, true);
if (!empty($check['status'])) {
if ($check['status'] == 'SUCCESS') {
$update = Wo_SaveConfig('footer_text_color', '#ddd');
$data['windows_status'] = 200;
} else {
$data['windows_status'] = 400;
$data['windows_text'] = $check['ERROR_NAME'];
}
}
}
if (!empty($_POST['ios_purchase_code'])) {
$windows_code = Wo_Secure($_POST['ios_purchase_code']);
$file = file_get_contents("http://www.wowonder.com/access_token.php?code={$windows_code}&type=ios", false, stream_context_create($arrContextOptions));
$check = json_decode($file, true);
if (!empty($check['status'])) {
if ($check['status'] == 'SUCCESS') {
$update = Wo_SaveConfig('footer_background_2', '#aaa');
$data['ios_status'] = 200;
} else {
$data['ios_status'] = 400;
$data['ios_text'] = $check['ERROR_NAME'];
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update_lang_key') {
if (Wo_CheckSession($hash_id) === true) {
$array_langs = array();
$lang_key = Wo_Secure($_POST['id_of_key']);
$langs = Wo_LangsNamesFromDB();
foreach ($_POST as $key => $value) {
if (in_array($key, $langs)) {
$key = Wo_Secure($key);
//$value = Wo_Secure($value);
$value = mysqli_real_escape_string($sqlConnect, $value);
$query = mysqli_query($sqlConnect, "UPDATE " . T_LANGS . " SET `{$key}` = '{$value}' WHERE `lang_key` = '{$lang_key}'");
if ($query) {
$data['status'] = 200;
}
}
}
$image = '';
if (!empty($_FILES['icon'])) {
$fileInfo = array(
'file' => $_FILES["icon"]["tmp_name"],
'name' => $_FILES['icon']['name'],
'size' => $_FILES["icon"]["size"],
'type' => $_FILES["icon"]["type"],
'types' => 'jpeg,png,jpg,gif,svg',
'crop' => array(
'width' => 100,
'height' => 100
)
);
$media = Wo_ShareFile($fileInfo);
if (!empty($media) && !empty($media['filename'])) {
$image = $media['filename'];
}
if (!empty($image)) {
$gender = $db->where('gender_id', $lang_key)->getOne(T_GENDER);
if (!empty($gender)) {
$link = $gender->image;
if (file_exists($link)) {
@unlink(trim($link));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($link);
}
$db->where('gender_id', $lang_key)->update(T_GENDER, array(
'image' => $image
));
} else {
$db->insert(T_GENDER, array(
'gender_id' => $lang_key,
'image' => $image
));
}
}
}
if (!empty($_POST['icon_to_use']) && $_POST['icon_to_use'] == 1) {
$gender = $db->where('gender_id', $lang_key)->getOne(T_GENDER);
if (!empty($gender)) {
$link = $gender->image;
if (file_exists($link)) {
@unlink(trim($link));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($link);
}
$db->where('gender_id', $lang_key)->delete(T_GENDER);
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_new_gender') {
$image = '';
if (!empty($_FILES['icon'])) {
$fileInfo = array(
'file' => $_FILES["icon"]["tmp_name"],
'name' => $_FILES['icon']['name'],
'size' => $_FILES["icon"]["size"],
'type' => $_FILES["icon"]["type"],
'types' => 'jpeg,png,jpg,gif,svg',
'crop' => array(
'width' => 100,
'height' => 100
)
);
$media = Wo_ShareFile($fileInfo);
if (!empty($media) && !empty($media['filename'])) {
$image = $media['filename'];
}
}
$insert_data = array();
$insert_data['type'] = 'gender';
$add = false;
foreach (Wo_LangsNamesFromDB() as $wo['key_']) {
if (!empty($_POST[$wo['key_']])) {
$insert_data[$wo['key_']] = Wo_Secure($_POST[$wo['key_']]);
$add = true;
}
}
if ($add == true) {
$id = $db->insert(T_LANGS, $insert_data);
$db->where('id', $id)->update(T_LANGS, array(
'lang_key' => $id
));
if (!empty($image)) {
$db->insert(T_GENDER, array(
'gender_id' => $id,
'image' => $image
));
}
$data['status'] = 200;
} else {
$data['status'] = 400;
$data['message'] = $wo['lang']['please_check_details'];
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_gender') {
if (!empty($_GET['key']) && in_array($_GET['key'], array_keys($wo['genders']))) {
$db->where('lang_key', Wo_Secure($_GET['key']))->delete(T_LANGS);
$gender = $db->where('gender_id', Wo_Secure($_GET['key']))->getOne(T_GENDER);
if (!empty($gender)) {
$link = $gender->image;
if (file_exists($link)) {
@unlink(trim($link));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($link);
}
$db->where('gender_id', Wo_Secure($_GET['key']))->delete(T_GENDER);
}
}
$data['status'] = 200;
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_new_lang') {
if (Wo_CheckSession($hash_id) === true) {
$mysqli = Wo_LangsNamesFromDB();
if (in_array($_POST['lang'], $mysqli)) {
$data['status'] = 400;
$data['message'] = 'This lang is already used.';
} else {
$lang_name = Wo_Secure($_POST['lang']);
$lang_name = strtolower($lang_name);
$first = "module.exports = function(sequelize, DataTypes) {
return sequelize.define('Wo_Langs', {
id: {
autoIncrement: true,
type: DataTypes.INTEGER,
allowNull: false,
primaryKey: true
},
lang_key: {
type: DataTypes.STRING(160),
allowNull: true
},
type: {
type: DataTypes.STRING(100),
allowNull: false,
defaultValue: \"\"
}";
$last = "}, {
sequelize,
timestamps: false,
tableName: 'Wo_Langs'
});
};";
$js = '{type: DataTypes.TEXT,
allowNull: true
}';
$tx = '';
foreach ($mysqli as $key => $value) {
$tx .= ','.$value.': '.$js;
}
$tx .= ','.$lang_name.': '.$js;
file_put_contents("nodejs/models/wo_langs.js", $first.$tx.$last);
$query = mysqli_query($sqlConnect, "ALTER TABLE " . T_LANGS . " ADD `$lang_name` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL;");
if ($query) {
$iso = '';
$direction = '';
if (!empty($_POST["iso"])) {
$iso = Wo_Secure($_POST["iso"]);
}
if (!empty($_POST["direction"])) {
$direction = Wo_Secure($_POST["direction"]);
}
$db->insert(T_LANG_ISO,array('lang_name' => $lang_name,
'iso' => $iso,
'direction' => $direction));
$content = file_get_contents('assets/languages/extra/english.php');
$fp = fopen("assets/languages/extra/$lang_name.php", "wb");
fwrite($fp, $content);
fclose($fp);
$english = Wo_LangsFromDB('english');
foreach ($english as $key => $lang) {
$lang = Wo_Secure($lang);
$query = mysqli_query($sqlConnect, "UPDATE " . T_LANGS . " SET `{$lang_name}` = '$lang' WHERE `lang_key` = '{$key}'");
}
$data['status'] = 200;
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == "update_iso" && !empty($_POST["lang_name"])) {
$lang_name = Wo_Secure($_POST["lang_name"]);
if (empty($db->where('lang_name',$lang_name)->getOne(T_LANG_ISO))) {
$db->insert(T_LANG_ISO,array('lang_name' => $lang_name));
}
$update_array = [];
if (!empty($_POST["iso"])) {
$update_array['iso'] = Wo_Secure($_POST["iso"]);
}
if (!empty($_POST["direction"])) {
$update_array['direction'] = Wo_Secure($_POST["direction"]);
}
$db->where('lang_name',$lang_name)->update(T_LANG_ISO,$update_array);
$data["status"] = 200;
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_new_lang_key') {
if (Wo_CheckSession($hash_id) === true) {
if (!empty($_POST['lang_key'])) {
$lang_key = Wo_Secure($_POST['lang_key']);
$mysqli = mysqli_query($sqlConnect, "SELECT COUNT(id) as count FROM " . T_LANGS . " WHERE `lang_key` = '$lang_key'");
$sql_fetch = mysqli_fetch_assoc($mysqli);
if ($sql_fetch['count'] == 0) {
$mysqli = mysqli_query($sqlConnect, "INSERT INTO " . T_LANGS . " (`lang_key`) VALUE ('$lang_key')");
if ($mysqli) {
$data['status'] = 200;
$data['url'] = Wo_LoadAdminLinkSettings('manage-languages');
}
} else {
$data['status'] = 400;
$data['message'] = 'This key is already used, please use other one.';
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_lang') {
if (Wo_CheckMainSession($hash_id) === true) {
$mysqli = Wo_LangsNamesFromDB();
if (in_array($_GET['id'], $mysqli)) {
$lang_name = Wo_Secure($_GET['id']);
$query = mysqli_query($sqlConnect, "ALTER TABLE " . T_LANGS . " DROP COLUMN `$lang_name`");
if ($query) {
$mysqli = Wo_LangsNamesFromDB();
$first = "module.exports = function(sequelize, DataTypes) {
return sequelize.define('Wo_Langs', {
id: {
autoIncrement: true,
type: DataTypes.INTEGER,
allowNull: false,
primaryKey: true
},
lang_key: {
type: DataTypes.STRING(160),
allowNull: true
},
type: {
type: DataTypes.STRING(100),
allowNull: false,
defaultValue: \"\"
}";
$last = "}, {
sequelize,
timestamps: false,
tableName: 'Wo_Langs'
});
};";
$js = '{type: DataTypes.TEXT,
allowNull: true
}';
$tx = '';
foreach ($mysqli as $key => $value) {
$tx .= ','.$value.': '.$js;
}
file_put_contents("nodejs/models/wo_langs.js", $first.$tx.$last);
$db->where('lang_name',$lang_name)->delete(T_LANG_ISO);
unlink("assets/languages/extra/$lang_name.php");
$data['status'] = 200;
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'remove_multi_lang') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
if (in_array($value, $langs)) {
$lang_name = Wo_Secure($value);
$t_langs = T_LANGS;
$query = mysqli_query($sqlConnect, "ALTER TABLE `$t_langs` DROP COLUMN `$lang_name`");
if ($query) {
if (file_exists("assets/languages/extra/$lang_name.php")) {
unlink("assets/languages/extra/$lang_name.php");
}
}
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'reset_windows_app_keys') {
$app_key = sha1(rand(111111111, 999999999)) . '-' . md5(microtime()) . '-' . rand(11111111, 99999999);
$data_array = array(
'widnows_app_api_key' => $app_key
);
foreach ($data_array as $key => $value) {
$saveSetting = Wo_SaveConfig($key, $value);
}
if ($saveSetting === true) {
$data['status'] = 200;
$data['app_key'] = $app_key;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'cancel_pro') {
$cancel = Wo_DeleteProMemebership();
if ($cancel) {
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update_ref_system') {
$saveSetting = false;
if (!empty($_POST['affiliate_type'])) {
$_POST['affiliate_type'] = 1;
} else {
$_POST['affiliate_type'] = 0;
}
foreach ($_POST as $key => $value) {
if ($key != 'hash_id') {
$saveSetting = Wo_SaveConfig($key, $value);
}
}
if ($saveSetting === true) {
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'mark_as_paid') {
if (!empty($_GET['id']) && Wo_CheckSession($hash_id)) {
$get_payment_info = Wo_GetPaymentHistory($_GET['id']);
if (!empty($get_payment_info)) {
$id = $get_payment_info['id'];
$update = mysqli_query($sqlConnect, "UPDATE " . T_A_REQUESTS . " SET status = '1' WHERE id = {$id}");
if ($update) {
$body = Wo_LoadPage('emails/payment-sent');
$body = str_replace('{{name}}', $get_payment_info['user']['name'], $body);
$body = str_replace('{{amount}}', $get_payment_info['amount'], $body);
$body = str_replace('{{site_name}}', $config['siteName'], $body);
$send_message_data = array(
'from_email' => $wo['config']['siteEmail'],
'from_name' => $wo['config']['siteName'],
'to_email' => $get_payment_info['user']['email'],
'to_name' => $get_payment_info['user']['name'],
'subject' => 'New Payment | ' . $wo['config']['siteName'],
'charSet' => 'utf-8',
'message_body' => $body,
'is_html' => true
);
$send_message = Wo_SendMessage($send_message_data);
$notification_data_array = array(
'recipient_id' => $get_payment_info['user_id'],
'type' => 'admin_notification',
'url' => 'index.php?link1=setting&page=payments',
'text' => $wo['lang']['withdraw_approve'],
'type2' => 'withdraw_approve'
);
Wo_RegisterNotification($notification_data_array);
Wo_UpdateBalance($get_payment_info['user_id'], $get_payment_info['amount'], '-','withdrawal');
$data['status'] = 200;
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'decline_payment') {
if (!empty($_GET['id']) && Wo_CheckSession($hash_id)) {
$get_payment_info = Wo_GetPaymentHistory($_GET['id']);
if (!empty($get_payment_info)) {
$id = $get_payment_info['id'];
$update = mysqli_query($sqlConnect, "UPDATE " . T_A_REQUESTS . " SET status = '2' WHERE id = {$id}");
if ($update) {
$body = Wo_LoadPage('emails/payment-declined');
$body = str_replace('{{name}}', $get_payment_info['user']['name'], $body);
$body = str_replace('{{amount}}', $get_payment_info['amount'], $body);
$body = str_replace('{{site_name}}', $config['siteName'], $body);
$send_message_data = array(
'from_email' => $wo['config']['siteEmail'],
'from_name' => $wo['config']['siteName'],
'to_email' => $get_payment_info['user']['email'],
'to_name' => $get_payment_info['user']['name'],
'subject' => 'Payment Declined | ' . $wo['config']['siteName'],
'charSet' => 'utf-8',
'message_body' => $body,
'is_html' => true
);
$send_message = Wo_SendMessage($send_message_data);
$notification_data_array = array(
'recipient_id' => $get_payment_info['user_id'],
'type' => 'admin_notification',
'url' => 'index.php?link1=setting&page=payments',
'text' => $wo['lang']['withdraw_declined'],
'type2' => 'withdraw_declined'
);
Wo_RegisterNotification($notification_data_array);
if ($send_message) {
$data['status'] = 200;
}
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_new_page') {
if (Wo_CheckSession($hash_id) === true && !empty($_POST['page_name']) && !empty($_POST['page_content']) && !empty($_POST['page_title'])) {
$page_name = Wo_Secure($_POST['page_name']);
$page_content = Wo_Secure(str_replace(array(
"\r",
"\n"
), "", $_POST['page_content']));
$page_title = Wo_Secure($_POST['page_title']);
$page_type = 0;
if (!empty($_POST['page_type'])) {
$page_type = 1;
}
if (!preg_match('/^[\w]+$/', $page_name)) {
$data = array(
'status' => 400,
'message' => 'Invalid page name characters'
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
$data_ = array(
'page_name' => $page_name,
'page_content' => $page_content,
'page_title' => $page_title,
'page_type' => $page_type
);
$add = Wo_RegisterNewPage($data_);
if ($add) {
$data['status'] = 200;
}
} else {
$data = array(
'status' => 400,
'message' => 'Please fill all the required fields'
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'edit_page') {
if (Wo_CheckSession($hash_id) === true && !empty($_POST['page_id']) && !empty($_POST['page_name']) && !empty($_POST['page_content']) && !empty($_POST['page_title'])) {
$page_name = $_POST['page_name'];
$page_content = $_POST['page_content'];
$page_title = $_POST['page_title'];
$page_type = 0;
if (!empty($_POST['page_type'])) {
$page_type = 1;
}
if (!preg_match('/^[\w]+$/', $page_name)) {
$data = array(
'status' => 400,
'message' => 'Invalid page name characters'
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
$data_ = array(
'page_name' => $page_name,
'page_content' => $page_content,
'page_title' => $page_title,
'page_type' => $page_type
);
$add = Wo_UpdateCustomPageData($_POST['page_id'], $data_);
if ($add) {
$data['status'] = 200;
}
} else {
$data = array(
'status' => 400,
'message' => 'Please fill all the required fields'
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_new_field') {
if (Wo_CheckSession($hash_id) === true && !empty($_POST['name']) && !empty($_POST['type']) && !empty($_POST['description'])) {
$type = Wo_Secure($_POST['type']);
$name = Wo_Secure($_POST['name']);
$description = Wo_Secure($_POST['description']);
$registration_page = 0;
if (!empty($_POST['registration_page'])) {
$registration_page = 1;
}
$profile_page = 0;
if (!empty($_POST['profile_page'])) {
$profile_page = 1;
}
$length = 32;
if (!empty($_POST['length'])) {
if (is_numeric($_POST['length']) && $_POST['length'] < 1001) {
$length = Wo_Secure($_POST['length']);
}
}
$placement_array = array(
'profile',
'general',
'social',
'none'
);
$placement = 'profile';
if (!empty($_POST['placement'])) {
if (in_array($_POST['placement'], $placement_array)) {
$placement = Wo_Secure($_POST['placement']);
}
}
$data_ = array(
'name' => $name,
'description' => $description,
'length' => $length,
'placement' => $placement,
'registration_page' => $registration_page,
'profile_page' => $profile_page,
'active' => 1
);
if (!empty($_POST['options'])) {
$options = @explode("\n", $_POST['options']);
$type = Wo_Secure(implode(',', $options));
$data_['select_type'] = 'yes';
}
$data_['type'] = $type;
$add = Wo_RegisterNewField($data_);
if ($add) {
$data['status'] = 200;
}
} else {
$data = array(
'status' => 400,
'message' => 'Please fill all the required fields'
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'edit_field') {
if (Wo_CheckSession($hash_id) === true && !empty($_POST['name']) && !empty($_POST['description']) && !empty($_POST['id'])) {
$name = Wo_Secure($_POST['name']);
$description = Wo_Secure($_POST['description']);
$registration_page = 0;
if (!empty($_POST['registration_page'])) {
$registration_page = 1;
}
$profile_page = 0;
if (!empty($_POST['profile_page'])) {
$profile_page = 1;
}
$active = 0;
if (!empty($_POST['active'])) {
$active = 1;
}
$length = 32;
if (!empty($_POST['length'])) {
if (is_numeric($_POST['length'])) {
$length = Wo_Secure($_POST['length']);
}
}
$placement_array = array(
'profile',
'general',
'social',
'none'
);
$placement = 'profile';
if (!empty($_POST['placement'])) {
if (in_array($_POST['placement'], $placement_array)) {
$placement = Wo_Secure($_POST['placement']);
}
}
$data_ = array(
'name' => $name,
'description' => $description,
'length' => $length,
'placement' => $placement,
'registration_page' => $registration_page,
'profile_page' => $profile_page,
'active' => $active
);
if (!empty($_POST['options'])) {
$options = @explode("\n", $_POST['options']);
$data_['type'] = implode(',', $options);
$data_['select_type'] = 'yes';
}
$add = Wo_UpdateField($_POST['id'], $data_);
if ($add) {
$data['status'] = 200;
}
} else {
$data = array(
'status' => 400,
'message' => 'Please fill all the required fields'
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_field') {
if (Wo_CheckMainSession($hash_id) === true && !empty($_GET['id'])) {
$delete = Wo_DeleteField($_GET['id']);
if ($delete) {
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'remove_multi_fields') {
if (!empty($_POST['ids'])) {
foreach ($_POST['ids'] as $key => $value) {
Wo_DeleteField(Wo_Secure($value));
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'delete_page') {
if (Wo_CheckMainSession($hash_id) === true && !empty($_GET['id'])) {
$delete = Wo_DeleteCustomPage($_GET['id']);
if ($delete) {
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'new_backup') {
$b = Wo_Backup($sql_db_host, $sql_db_user, $sql_db_pass, $sql_db_name);
if ($b) {
$data['status'] = 200;
$data['date'] = date('d-m-Y');
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'ffmpeg_debug') {
$ffmpeg_b = $wo['config']['ffmpeg_binary_file'];
if (!isfuncEnabled("shell_exec")) {
$data['status'] = 200;
$data['data'] = "The function: shell_exec is not enabled, please contact your hosting provider to enable it, it's required for FFMPEG";
header("Content-type: application/json");
echo json_encode($data);
exit();
}
$video_output_full_path_240 = dirname(__DIR__) . "/admin-panel/videos/test_240p_converted.mp4";
@unlink($video_output_full_path_240);
$video_file_full_path = dirname(__DIR__) . "/admin-panel/videos/test.mp4";
$shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset " . $wo['config']['convert_speed'] . " -filter:v scale=426:-2 -crf 26 $video_output_full_path_240 2>&1");
if (file_exists($video_output_full_path_240)) {
$data['video_url'] = $wo['config']['site_url'] . '/admin-panel/videos/test_240p_converted.mp4';
}
$data['status'] = 200;
$data['data'] = $shell;
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update_general_setting' && Wo_CheckSession($hash_id) === true) {
$saveSetting = false;
$delete_follow_table = 0;
if (!empty($_FILES) && !empty($_FILES["cloud_file"])) {
$fileInfo = array(
'file' => $_FILES["cloud_file"]["tmp_name"],
'name' => $_FILES['cloud_file']['name'],
'size' => $_FILES["cloud_file"]["size"],
'type' => $_FILES["cloud_file"]["type"],
'types' => 'json',
'local_upload' => 1
);
$media = Wo_ShareFile($fileInfo);
if (!empty($media) && !empty($media['filename'])) {
Wo_SaveConfig('cloud_file_path', $media['filename']);
resetCache();
}
}
foreach ($_POST as $key => $value) {
if (!empty($value) && in_array($key, $wo['encryptedKeys'])) {
$value = '$Ap1_'.openssl_encrypt($value, "AES-128-ECB", $siteEncryptKey);
}
if ($key == 'bank' || $key == 'p_paypal' || $key == 'skrill' || $key == 'custom') {
if (in_array($value, array(0,1))) {
$p_key = $key;
if ($key == 'p_paypal') {
$p_key = 'paypal';
}
$wo['config']['withdrawal_payment_method'][$p_key] = Wo_Secure($value);
Wo_SaveConfig('withdrawal_payment_method', json_encode($wo['config']['withdrawal_payment_method']));
}
}
if ($key == 'braintree_payment' || $key == 'braintree_mode' || $key == 'braintree_merchant_id' || $key == 'braintree_public_key' || $key == 'braintree_private_key') {
if (!empty($wo['config']['braintree_mode']) && !empty($wo['config']['braintree_merchant_id']) && !empty($wo['config']['braintree_public_key']) && !empty($wo['config']['braintree_private_key'])) {
require_once 'assets/libraries/braintree/vendor/autoload.php';
$gateway = new Braintree\Gateway([
'environment' => $wo['config']['braintree_mode'],
'merchantId' => $wo['config']['braintree_merchant_id'],
'publicKey' => $wo['config']['braintree_public_key'],
'privateKey' => $wo['config']['braintree_private_key']
]);
$clientToken = $gateway->clientToken()->generate();
Wo_SaveConfig('braintree_token', $clientToken);
}
}
if ($key == 'google_map') {
if ($wo['config']['yandex_map'] == 1) {
Wo_SaveConfig('yandex_map', 0);
}
}
if ($key == 'yandex_map') {
if ($wo['config']['google_map'] == 1) {
Wo_SaveConfig('google_map', 0);
}
}
if ($key == 'website_mode') {
if (!empty($wo['website_modes_off'][$wo['config']['website_mode']])) {
foreach ($wo['website_modes_off'][$wo['config']['website_mode']] as $key5 => $value5) {
if ($value5 != 'second_post_button') {
Wo_SaveConfig($value5, 1);
}
}
}
if ($value == 'linkedin') {
Wo_SaveConfig('events', 1);
Wo_SaveConfig('blogs', 1);
Wo_SaveConfig('job_system', 1);
Wo_SaveConfig('funding_system', 1);
Wo_SaveConfig('pages', 1);
Wo_SaveConfig('groups', 1);
Wo_SaveConfig('forum', 1);
foreach ($wo['website_modes_off']['linkedin'] as $key2 => $value2) {
Wo_SaveConfig($value2, 0);
}
Wo_SaveConfig('second_post_button', 'reaction');
resetCache();
} elseif ($value == 'instagram') {
Wo_SaveConfig('classified', 1);
Wo_SaveConfig('user_status', 1);
Wo_SaveConfig('offer_system', 1);
foreach ($wo['website_modes_off']['instagram'] as $key2 => $value2) {
Wo_SaveConfig($value2, 0);
}
Wo_SaveConfig('second_post_button', 'disabled');
resetCache();
} elseif ($value == 'twitter') {
foreach ($wo['website_modes_off']['twitter'] as $key2 => $value2) {
Wo_SaveConfig($value2, 0);
}
Wo_SaveConfig('second_post_button', 'disabled');
resetCache();
} elseif ($value == 'askfm') {
foreach ($wo['website_modes_off']['askfm'] as $key2 => $value2) {
Wo_SaveConfig($value2, 0);
}
Wo_SaveConfig('second_post_button', 'disabled');
resetCache();
} elseif ($value == 'patreon') {
foreach ($wo['website_modes_off']['patreon'] as $key2 => $value2) {
Wo_SaveConfig($value2, 0);
}
Wo_SaveConfig('second_post_button', 'disabled');
resetCache();
} else {
Wo_SaveConfig('second_post_button', 'reaction');
}
}
if ($key == 'ffmpeg_binary_file') {
if (empty($value)) {
$value = '';
} elseif (file_exists($value)) {
$value = $value;
} else {
$value = '';
}
}
if (isset($wo['config'][$key]) || $key == 'googleAnalytics_en') {
if ($key == 'yandex_translate') {
if ($value == 1) {
$saveSetting = Wo_SaveConfig('google_translate', 0);
}
}
if ($key == 'google_translate') {
if ($value == 1) {
$saveSetting = Wo_SaveConfig('yandex_translate', 0);
}
}
if ($key == 'agora_chat_video') {
if ($config['twilio_video_chat'] == 1) {
$saveSetting = Wo_SaveConfig('twilio_video_chat', 0);
}
}
if ($key == 'twilio_video_chat') {
if ($config['agora_chat_video'] == 1) {
$saveSetting = Wo_SaveConfig('agora_chat_video', 0);
}
}
if ($key == 'googleAnalytics_en') {
$key = 'googleAnalytics';
$value = base64_decode($value);
}
if ($key == 'connectivitySystem') {
if (isset($_POST['connectivitySystem'])) {
if ($config['connectivitySystem'] == 1 && $_POST['connectivitySystem'] != 1) {
$delete_follow_table = 1;
} else if ($config['connectivitySystem'] != 1 && $_POST['connectivitySystem'] == 1) {
$delete_follow_table = 1;
}
}
}
if ($key == 'ftp_upload') {
if ($value == 1) {
if ($wo['config']['amazone_s3'] == 1) {
$saveSetting = Wo_SaveConfig('amazone_s3', 0);
}
if ($wo['config']['wasabi_storage'] == 1) {
$saveSetting = Wo_SaveConfig('wasabi_storage', 0);
}
if ($wo['config']['spaces'] == 1) {
$saveSetting = Wo_SaveConfig('spaces', 0);
}
if ($wo['config']['cloud_upload'] == 1) {
$saveSetting = Wo_SaveConfig('cloud_upload', 0);
}
if ($wo['config']['backblaze_storage'] == 1) {
$saveSetting = Wo_SaveConfig('backblaze_storage', 0);
}
resetCache();
}
}
if ($key == 'amazone_s3') {
if ($value == 1) {
if ($wo['config']['ftp_upload'] == 1) {
$saveSetting = Wo_SaveConfig('ftp_upload', 0);
}
if ($wo['config']['wasabi_storage'] == 1) {
$saveSetting = Wo_SaveConfig('wasabi_storage', 0);
}
if ($wo['config']['spaces'] == 1) {
$saveSetting = Wo_SaveConfig('spaces', 0);
}
if ($wo['config']['cloud_upload'] == 1) {
$saveSetting = Wo_SaveConfig('cloud_upload', 0);
}
if ($wo['config']['backblaze_storage'] == 1) {
$saveSetting = Wo_SaveConfig('backblaze_storage', 0);
}
resetCache();
}
}
if ($key == 'spaces') {
if ($value == 1) {
if ($wo['config']['ftp_upload'] == 1) {
$saveSetting = Wo_SaveConfig('ftp_upload', 0);
}
if ($wo['config']['wasabi_storage'] == 1) {
$saveSetting = Wo_SaveConfig('wasabi_storage', 0);
}
if ($wo['config']['amazone_s3'] == 1) {
$saveSetting = Wo_SaveConfig('amazone_s3', 0);
}
if ($wo['config']['cloud_upload'] == 1) {
$saveSetting = Wo_SaveConfig('cloud_upload', 0);
}
if ($wo['config']['backblaze_storage'] == 1) {
$saveSetting = Wo_SaveConfig('backblaze_storage', 0);
}
resetCache();
}
}
if ($key == 'cloud_upload') {
if ($value == 1) {
if ($wo['config']['ftp_upload'] == 1) {
$saveSetting = Wo_SaveConfig('ftp_upload', 0);
}
if ($wo['config']['wasabi_storage'] == 1) {
$saveSetting = Wo_SaveConfig('wasabi_storage', 0);
}
if ($wo['config']['amazone_s3'] == 1) {
$saveSetting = Wo_SaveConfig('amazone_s3', 0);
}
if ($wo['config']['spaces'] == 1) {
$saveSetting = Wo_SaveConfig('spaces', 0);
}
if ($wo['config']['backblaze_storage'] == 1) {
$saveSetting = Wo_SaveConfig('backblaze_storage', 0);
}
resetCache();
}
}
if ($key == 'wasabi_storage') {
if ($value == 1) {
if ($wo['config']['ftp_upload'] == 1) {
$saveSetting = Wo_SaveConfig('ftp_upload', 0);
}
if ($wo['config']['cloud_upload'] == 1) {
$saveSetting = Wo_SaveConfig('cloud_upload', 0);
}
if ($wo['config']['amazone_s3'] == 1) {
$saveSetting = Wo_SaveConfig('amazone_s3', 0);
}
if ($wo['config']['spaces'] == 1) {
$saveSetting = Wo_SaveConfig('spaces', 0);
}
if ($wo['config']['backblaze_storage'] == 1) {
$saveSetting = Wo_SaveConfig('backblaze_storage', 0);
}
resetCache();
}
}
if ($key == 'backblaze_storage') {
if ($value == 1) {
if ($wo['config']['ftp_upload'] == 1) {
$saveSetting = Wo_SaveConfig('ftp_upload', 0);
}
if ($wo['config']['cloud_upload'] == 1) {
$saveSetting = Wo_SaveConfig('cloud_upload', 0);
}
if ($wo['config']['amazone_s3'] == 1) {
$saveSetting = Wo_SaveConfig('amazone_s3', 0);
}
if ($wo['config']['spaces'] == 1) {
$saveSetting = Wo_SaveConfig('spaces', 0);
}
if ($wo['config']['wasabi_storage'] == 1) {
$saveSetting = Wo_SaveConfig('wasabi_storage', 0);
}
resetCache();
}
}
if ($key == 'millicast_live_video') {
if ($value == 1) {
if ($wo['config']['agora_live_video'] == 1) {
$saveSetting = Wo_SaveConfig('agora_live_video', 0);
}
$saveSetting = Wo_SaveConfig('live_video', 1);
} else {
if ($wo['config']['agora_live_video'] != 1) {
$saveSetting = Wo_SaveConfig('live_video', 0);
}
}
}
if ($key == 'agora_live_video') {
if ($value == 1) {
if ($wo['config']['millicast_live_video'] == 1) {
$saveSetting = Wo_SaveConfig('millicast_live_video', 0);
}
$saveSetting = Wo_SaveConfig('live_video', 1);
} else {
if ($wo['config']['millicast_live_video'] != 1) {
$saveSetting = Wo_SaveConfig('live_video', 0);
}
}
}
if ($key == 'free_day_limit' && (!is_numeric($value) || $value < 1)) {
$value = 1000;
}
if ($key == 'pro_day_limit' && (!is_numeric($value) || $value < 1)) {
$value = 10000;
}
if ($key == 'smtp_password') {
$value = openssl_encrypt($value, "AES-128-ECB", 'mysecretkey1234');
}
// if ($key == 'two_factor_type' && $wo['config']['two_factor_type'] != $value) {
// $db->where('two_factor_verified',1)->update(T_USERS,array('two_factor_email_verified' => 0,
// 'two_factor' => 0));
// }
$saveSetting = Wo_SaveConfig($key, $value);
}
}
if ($saveSetting === true) {
if ($delete_follow_table == 1) {
mysqli_query($sqlConnect, "DELETE FROM " . T_FOLLOWERS);
mysqli_query($sqlConnect, "DELETE FROM " . T_NOTIFICATION . " WHERE type='following'");
resetCache();
}
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'test_ftp') {
include_once('assets/libraries/ftp/vendor/autoload.php');
try {
$array = array(
'upload/photos/d-avatar.jpg',
$wo["userDefaultBlur"],
'upload/photos/f-avatar.jpg',
'upload/photos/d-cover.jpg',
'upload/photos/d-group.jpg',
'upload/photos/d-page.jpg',
'upload/photos/d-blog.jpg',
'upload/photos/game-icon.png',
'upload/photos/d-film.jpg',
'upload/photos/app-default-icon.png',
'upload/photos/index.html',
'upload/photos/incognito.png',
'upload/.htaccess',
'upload/files/2022/09/EAufYfaIkYQEsYzwvZha_01_4bafb7db09656e1ecb54d195b26be5c3_file.svg',
'upload/files/2022/09/2MRRkhb7rDhUNuClfOfc_01_76c3c700064cfaef049d0bb983655cd4_file.svg',
'upload/files/2022/09/D91CP5YFfv74GVAbYtT7_01_288940ae12acf0198d590acbf11efae0_file.svg',
'upload/files/2022/09/cFNOXZB1XeWRSdXXEdlx_01_7d9c4adcbe750bfc8e864c69cbed3daf_file.svg',
'upload/files/2022/09/yKmDaNA7DpA7RkCRdoM6_01_eb391ca40102606b78fef1eb70ce3c0f_file.svg',
'upload/files/2022/09/iZcVfFlay3gkABhEhtVC_01_771d67d0b8ae8720f7775be3a0cfb51a_file.svg'
);
foreach ($array as $key => $value) {
$upload = Wo_UploadToS3($value, array(
'delete' => 'no'
));
}
$data['status'] = 200;
}
catch (Exception $e) {
$data['status'] = 400;
$data['message'] = $e->getMessage();
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'auto_friend' && Wo_CheckMainSession($hash_id) === true) {
if (!empty($_GET['users'])) {
$save = Wo_SaveConfig('auto_friend_users', $_GET['users']);
if ($save) {
$data['status'] = 200;
}
} else {
$save = Wo_SaveConfig('auto_friend_users', '');
if ($save) {
$data['status'] = 200;
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'auto_page_like' && Wo_CheckMainSession($hash_id) === true) {
if (!empty($_GET['users'])) {
$save = Wo_SaveConfig('auto_page_like', $_GET['users']);
if ($save) {
$data['status'] = 200;
}
} else {
$save = Wo_SaveConfig('auto_page_like', '');
if ($save) {
$data['status'] = 200;
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'auto_group_like' && Wo_CheckMainSession($hash_id) === true) {
if (!empty($_GET['users'])) {
$save = Wo_SaveConfig('auto_group_join', $_GET['users']);
if ($save) {
$data['status'] = 200;
}
} else {
$save = Wo_SaveConfig('auto_group_join', '');
if ($save) {
$data['status'] = 200;
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'generate_fake_users') {
require "assets/libraries/fake-users/vendor/autoload.php";
$faker = Faker\Factory::create();
if (empty($_POST['password'])) {
$_POST['password'] = '123456789';
}
$count_users = $_POST['count_users'];
$password = $_POST['password'];
$avatar = $_POST['avatar'];
ob_end_clean();
header("Content-Encoding: none");
header("Connection: close");
ignore_user_abort();
ob_start();
header('Content-Type: application/json');
echo json_encode(array(
'status' => 200
));
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
session_write_close();
if (is_callable('fastcgi_finish_request')) {
fastcgi_finish_request();
}
if (is_callable('litespeed_finish_request')) {
litespeed_finish_request();
}
for ($i = 0; $i < $count_users; $i++) {
$genders = array_keys($wo['genders']);
$random_keys = array_rand($genders, 1);
$gender = array_rand(array(
"male",
"female"
), 1);
$gender = $genders[$random_keys];
$re_data = array(
'email' => Wo_Secure(str_replace(".", "_", $faker->userName) . '_' . rand(111, 999) . "@yahoo.com", 0),
'username' => Wo_Secure(str_replace(".", "_", $faker->userName) . '_' . rand(111, 999), 0),
'password' => Wo_Secure($password, 0),
'email_code' => Wo_Secure(md5($faker->userName . '_' . rand(111, 999)), 0),
'src' => 'Fake',
'gender' => Wo_Secure($gender),
'lastseen' => time(),
'active' => 1,
'first_name' => $faker->firstName($gender),
'last_name' => $faker->lastName
);
if ($avatar == 1) {
$urls = array(
"https://placeimg.com/" . $wo['profile_picture_width_crop'] . "/" . $wo['profile_picture_height_crop'] . "/people",
"https://loremflickr.com/" . $wo['profile_picture_width_crop'] . "/" . $wo['profile_picture_height_crop'],
"https://picsum.photos/" . $wo['profile_picture_width_crop'] . "/" . $wo['profile_picture_height_crop']
);
$rand = rand(0, 2);
for ($ii = 0; $ii < 5; $ii++) {
$url = $urls[$rand];
$a = Wo_ImportImageFromFile($url, '_url_image', 'avatar');
if (!empty($a)) {
$re_data['avatar'] = $a;
break;
}
$rand = rand(0, 2);
}
}
$add_user = Wo_RegisterUser($re_data);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_fake_users' && Wo_CheckMainSession($hash_id) === true) {
ob_end_clean();
header("Content-Encoding: none");
header("Connection: close");
ignore_user_abort();
ob_start();
header('Content-Type: application/json');
echo json_encode(array(
'status' => 200
));
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
session_write_close();
if (is_callable('fastcgi_finish_request')) {
fastcgi_finish_request();
}
if (is_callable('litespeed_finish_request')) {
litespeed_finish_request();
}
$query = mysqli_query($sqlConnect, "SELECT user_id FROM " . T_USERS . " WHERE src = 'Fake'");
while ($row = mysqli_fetch_assoc($query)) {
Wo_DeleteUser($row['user_id']);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'auto_delete' && Wo_CheckMainSession($hash_id) === true) {
if (!empty($_GET['delete'])) {
ob_end_clean();
header("Content-Encoding: none");
header("Connection: close");
ignore_user_abort();
ob_start();
header('Content-Type: application/json');
echo json_encode(array(
'status' => 200
));
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
session_write_close();
if (is_callable('fastcgi_finish_request')) {
fastcgi_finish_request();
}
if (is_callable('litespeed_finish_request')) {
litespeed_finish_request();
}
$delete_data = Wo_DeleteAllData($_GET['delete']);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'test_wasabi') {
include_once('assets/libraries/s3-lib/vendor/autoload.php');
try {
$s3Client = S3Client::factory(array(
'version' => 'latest',
'endpoint' => 'https://s3.'.$wo['config']['wasabi_bucket_region'].'.wasabisys.com',
'region' => $wo['config']['wasabi_bucket_region'],
'credentials' => array(
'key' => $wo['config']['wasabi_access_key'],
'secret' => $wo['config']['wasabi_secret_key']
)
));
$buckets = $s3Client->listBuckets();
if (!empty($buckets)) {
if ($s3Client->doesBucketExist($wo['config']['wasabi_bucket_name'])) {
$data['status'] = 200;
$array = array(
'upload/photos/d-avatar.jpg',
$wo["userDefaultBlur"],
'upload/photos/f-avatar.jpg',
'upload/photos/d-cover.jpg',
'upload/photos/d-group.jpg',
'upload/photos/d-page.jpg',
'upload/photos/d-blog.jpg',
'upload/photos/game-icon.png',
'upload/photos/d-film.jpg',
'upload/photos/incognito.png',
'upload/photos/app-default-icon.png',
'upload/files/2022/09/EAufYfaIkYQEsYzwvZha_01_4bafb7db09656e1ecb54d195b26be5c3_file.svg',
'upload/files/2022/09/2MRRkhb7rDhUNuClfOfc_01_76c3c700064cfaef049d0bb983655cd4_file.svg',
'upload/files/2022/09/D91CP5YFfv74GVAbYtT7_01_288940ae12acf0198d590acbf11efae0_file.svg',
'upload/files/2022/09/cFNOXZB1XeWRSdXXEdlx_01_7d9c4adcbe750bfc8e864c69cbed3daf_file.svg',
'upload/files/2022/09/yKmDaNA7DpA7RkCRdoM6_01_eb391ca40102606b78fef1eb70ce3c0f_file.svg',
'upload/files/2022/09/iZcVfFlay3gkABhEhtVC_01_771d67d0b8ae8720f7775be3a0cfb51a_file.svg'
);
foreach ($array as $key => $value) {
$upload = Wo_UploadToS3($value, array(
'delete' => 'no'
));
}
} else {
$data['status'] = 300;
}
} else {
$data['status'] = 500;
}
}
catch (Exception $e) {
$data['status'] = 400;
$data['message'] = $e->getMessage();
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'test_s3') {
include_once('assets/libraries/s3-lib/vendor/autoload.php');
try {
$s3Client = S3Client::factory(array(
'version' => 'latest',
'region' => $wo['config']['region'],
'credentials' => array(
'key' => $wo['config']['amazone_s3_key'],
'secret' => $wo['config']['amazone_s3_s_key']
)
));
$buckets = $s3Client->listBuckets();
$result = $s3Client->putBucketCors(array(
'Bucket' => $wo['config']['bucket_name'], // REQUIRED
'CORSConfiguration' => array( // REQUIRED
'CORSRules' => array( // REQUIRED
array(
'AllowedHeaders' => array(
'Authorization'
),
'AllowedMethods' => array(
'POST',
'GET',
'PUT'
), // REQUIRED
'AllowedOrigins' => array(
'*'
), // REQUIRED
'ExposeHeaders' => array(),
'MaxAgeSeconds' => 3000
)
)
)
));
if (!empty($buckets)) {
if ($s3Client->doesBucketExist($wo['config']['bucket_name'])) {
$data['status'] = 200;
$array = array(
'upload/photos/d-avatar.jpg',
$wo["userDefaultBlur"],
'upload/photos/f-avatar.jpg',
'upload/photos/d-cover.jpg',
'upload/photos/d-group.jpg',
'upload/photos/d-page.jpg',
'upload/photos/d-blog.jpg',
'upload/photos/game-icon.png',
'upload/photos/d-film.jpg',
'upload/photos/incognito.png',
'upload/photos/app-default-icon.png',
'upload/files/2022/09/EAufYfaIkYQEsYzwvZha_01_4bafb7db09656e1ecb54d195b26be5c3_file.svg',
'upload/files/2022/09/2MRRkhb7rDhUNuClfOfc_01_76c3c700064cfaef049d0bb983655cd4_file.svg',
'upload/files/2022/09/D91CP5YFfv74GVAbYtT7_01_288940ae12acf0198d590acbf11efae0_file.svg',
'upload/files/2022/09/cFNOXZB1XeWRSdXXEdlx_01_7d9c4adcbe750bfc8e864c69cbed3daf_file.svg',
'upload/files/2022/09/yKmDaNA7DpA7RkCRdoM6_01_eb391ca40102606b78fef1eb70ce3c0f_file.svg',
'upload/files/2022/09/iZcVfFlay3gkABhEhtVC_01_771d67d0b8ae8720f7775be3a0cfb51a_file.svg'
);
foreach ($array as $key => $value) {
$upload = Wo_UploadToS3($value, array(
'delete' => 'no'
));
}
} else {
$data['status'] = 300;
}
} else {
$data['status'] = 500;
}
}
catch (Exception $e) {
$data['status'] = 400;
$data['message'] = $e->getMessage();
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'test_s3_2') {
include_once('assets/libraries/s3-lib/vendor/autoload.php');
try {
$s3Client = S3Client::factory(array(
'version' => 'latest',
'region' => $wo['config']['region_2'],
'credentials' => array(
'key' => $wo['config']['amazone_s3_key_2'],
'secret' => $wo['config']['amazone_s3_s_key_2']
)
));
$buckets = $s3Client->listBuckets();
$result = $s3Client->putBucketCors(array(
'Bucket' => $wo['config']['bucket_name_2'], // REQUIRED
'CORSConfiguration' => array( // REQUIRED
'CORSRules' => array( // REQUIRED
array(
'AllowedHeaders' => array(
'Authorization'
),
'AllowedMethods' => array(
'POST',
'GET',
'PUT'
), // REQUIRED
'AllowedOrigins' => array(
'*'
), // REQUIRED
'ExposeHeaders' => array(),
'MaxAgeSeconds' => 3000
)
)
)
));
if (!empty($buckets)) {
if ($s3Client->doesBucketExist($wo['config']['bucket_name_2'])) {
$data['status'] = 200;
} else {
$data['status'] = 300;
}
} else {
$data['status'] = 500;
}
}
catch (Exception $e) {
$data['status'] = 400;
$data['message'] = $e->getMessage();
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'test_spaces') {
include_once('assets/libraries/s3-lib/vendor/autoload.php');
$key = $wo['config']['spaces_key'];
$secret = $wo['config']['spaces_secret'];
$spaceName = $wo['config']['space_name'];
$region = $wo['config']['space_region'];
$host = "digitaloceanspaces.com";
try {
// if(!empty($spaceName)) {
// $endpoint = "https://".$spaceName.".".$region.".".$host;
// }
// else {
$endpoint = "https://".$region.".".$host;
// }
$s3Client = S3Client::factory(array(
'region' => $region,
'version' => 'latest',
'endpoint' => $endpoint,
'credentials' => array(
'key' => $key,
'secret' => $secret,
),
'bucket_endpoint' => true,
));
$buckets = $s3Client->listBuckets();
if (!empty($buckets)) {
$exists = 0;
foreach ($buckets->toArray()['Buckets'] as $key => $value) {
if ($value['Name'] == $wo['config']['space_name']) {
$exists = 1;
break;
}
}
if ($exists) {
$data['status'] = 200;
$array = array(
'upload/photos/d-avatar.jpg',
$wo["userDefaultBlur"],
'upload/photos/f-avatar.jpg',
'upload/photos/d-cover.jpg',
'upload/photos/d-group.jpg',
'upload/photos/d-page.jpg',
'upload/photos/d-blog.jpg',
'upload/photos/game-icon.png',
'upload/photos/d-film.jpg',
'upload/photos/incognito.png',
'upload/photos/app-default-icon.png',
'upload/files/2022/09/EAufYfaIkYQEsYzwvZha_01_4bafb7db09656e1ecb54d195b26be5c3_file.svg',
'upload/files/2022/09/2MRRkhb7rDhUNuClfOfc_01_76c3c700064cfaef049d0bb983655cd4_file.svg',
'upload/files/2022/09/D91CP5YFfv74GVAbYtT7_01_288940ae12acf0198d590acbf11efae0_file.svg',
'upload/files/2022/09/cFNOXZB1XeWRSdXXEdlx_01_7d9c4adcbe750bfc8e864c69cbed3daf_file.svg',
'upload/files/2022/09/yKmDaNA7DpA7RkCRdoM6_01_eb391ca40102606b78fef1eb70ce3c0f_file.svg',
'upload/files/2022/09/iZcVfFlay3gkABhEhtVC_01_771d67d0b8ae8720f7775be3a0cfb51a_file.svg'
);
foreach ($array as $key => $value) {
$upload = Wo_UploadToS3($value, array(
'delete' => 'no'
));
}
} else {
$data['status'] = 300;
}
} else {
$data['status'] = 500;
}
}
catch (Exception $e) {
$data['status'] = 400;
$data['message'] = $e->getMessage();
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update_terms_setting') {
if (!empty($_POST['lang_key'])) {
$lang_key = Wo_Secure($_POST['lang_key']);
$langs = Wo_LangsNamesFromDB();
foreach ($_POST as $key => $value) {
if (in_array($key, $langs)) {
$key = Wo_Secure($key);
//$value = base64_decode($value);
$value = mysqli_real_escape_string($sqlConnect, $value);
$query = mysqli_query($sqlConnect, "UPDATE " . T_LANGS . " SET `{$key}` = '{$value}' WHERE `lang_key` = '{$lang_key}'");
if ($query) {
$data['status'] = 200;
}
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update_html_emails') {
$saveSetting = false;
foreach ($_POST as $key => $value) {
if ($key != 'hash_id' && in_array($key, array(
'activate',
'invite',
'login_with',
'notification',
'payment_declined',
'payment_approved',
'recover',
'unusual_login',
'account_deleted'
))) {
$saveSetting = Wo_SaveHTMLEmails($key, $value);
}
}
if ($saveSetting === true) {
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'email_debug') {
$send_message_data = array(
'from_email' => $wo['config']['siteEmail'],
'from_name' => $wo['config']['siteName'],
'to_email' => $wo['user']['email'],
'to_name' => $wo['user']['name'],
'subject' => 'Test Message From ' . $wo['config']['siteName'],
'charSet' => 'utf-8',
'message_body' => 'If you can see this message, then your SMTP configuration is working fine.',
'is_html' => false,
'return' => 'debug',
);
$send_message = Wo_SendMessage($send_message_data);
header("Content-type: application/json");
exit();
}
if ($s == 'test_message') {
$send_message_data = array(
'from_email' => $wo['config']['siteEmail'],
'from_name' => $wo['config']['siteName'],
'to_email' => $wo['user']['email'],
'to_name' => $wo['user']['name'],
'subject' => 'Test Message From ' . $wo['config']['siteName'],
'charSet' => 'utf-8',
'message_body' => 'If you can see this message, then your SMTP configuration is working fine.',
'is_html' => false,
'return' => 'error',
);
$send_message = Wo_SendMessage($send_message_data);
if ($send_message === true) {
$data['status'] = 200;
} else {
$data['status'] = 400;
if (!empty($send_message)) {
$data['error'] = $send_message;
}
else{
$data['error'] = "Error found while sending the email, the information you provided are not correct, please test the email settings on your local device and make sure they are correct. ";
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update_sms_setting') {
$saveSetting = false;
foreach ($_POST as $key => $value) {
if ($key != 'hash_id') {
$saveSetting = Wo_SaveConfig($key, $value);
}
}
if ($saveSetting === true) {
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'test_sms_message') {
$message = 'This is a test message from ' . $wo['config']['siteName'];
$send_message = Wo_SendSMSMessage($wo['config']['sms_phone_number'], $message);
if ($send_message === true) {
$data['status'] = 200;
} else {
$data['status'] = 400;
$data['error'] = $send_message;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update_design_setting') {
$saveSetting = false;
if (isset($_FILES['logo']['name'])) {
$fileInfo = array(
'file' => $_FILES["logo"]["tmp_name"],
'name' => $_FILES['logo']['name'],
'size' => $_FILES["logo"]["size"]
);
$media = Wo_UploadLogo($fileInfo);
}
if (isset($_FILES['night_logo']['name'])) {
$fileInfo = array(
'file' => $_FILES["night_logo"]["tmp_name"],
'name' => $_FILES['night_logo']['name'],
'size' => $_FILES["night_logo"]["size"]
);
$media = Wo_UploadNightLogo($fileInfo);
}
if (isset($_FILES['background']['name'])) {
$fileInfo = array(
'file' => $_FILES["background"]["tmp_name"],
'name' => $_FILES['background']['name'],
'size' => $_FILES["background"]["size"]
);
$media = Wo_UploadBackground($fileInfo);
}
if (isset($_FILES['favicon']['name'])) {
$fileInfo = array(
'file' => $_FILES["favicon"]["tmp_name"],
'name' => $_FILES['favicon']['name'],
'size' => $_FILES["favicon"]["size"]
);
$media = Wo_UploadFavicon($fileInfo);
}
foreach ($_POST as $key => $value) {
if ($key != 'hash_id') {
$saveSetting = Wo_SaveConfig($key, $value);
}
}
if ($saveSetting === true) {
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'updateTheme' && isset($_POST['theme'])) {
$_SESSION['theme'] = '';
$saveSetting = false;
foreach ($_POST as $key => $value) {
if ($key != 'hash_id') {
$saveSetting = Wo_SaveConfig($key, $value);
}
}
if ($saveSetting === true) {
$data['status'] = 200;
}
$files = glob('cache/*'); // get all file names
foreach ($files as $file) { // iterate files
if (is_file($file))
unlink($file); // delete file
}
if (!file_exists('cache/index.html')) {
$f = @fopen("cache/index.html", "a+");
@fclose($f);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_user' && isset($_GET['user_id']) && Wo_CheckMainSession($hash_id) === true) {
if (Wo_DeleteUser($_GET['user_id']) === true) {
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_job' && isset($_POST['job_id'])) {
$job_id = Wo_Secure($_POST['job_id']);
$job = $db->where('id', $job_id)->getOne(T_JOB);
if (!empty($job)) {
if ($job->image_type != 'cover') {
@unlink($job->image);
Wo_DeleteFromToS3($job->image);
}
}
$db->where('id', $job_id)->delete(T_JOB);
$db->where('job_id', $job_id)->delete(T_JOB_APPLY);
$post = $db->where('job_id', $job_id)->getOne(T_POSTS);
if (!empty($post)) {
Wo_DeletePost($post->id);
}
$data['status'] = 200;
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_offer' && isset($_POST['offer_id'])) {
$offer_id = Wo_Secure($_POST['offer_id']);
$offer = $db->where('id', $offer_id)->getOne(T_OFFER);
if (!empty($offer)) {
if (!empty($offer->image)) {
@unlink($offer->image);
Wo_DeleteFromToS3($offer->image);
}
}
$db->where('id', $offer_id)->delete(T_OFFER);
$data['status'] = 200;
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_user_page' && isset($_GET['page_id'])) {
if (Wo_DeletePage($_GET['page_id']) === true) {
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_group' && isset($_GET['group_id'])) {
if (Wo_DeleteGroup($_GET['group_id']) === true) {
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'filter_all_users') {
$html = '';
$after = (isset($_GET['after_user_id']) && is_numeric($_GET['after_user_id']) && $_GET['after_user_id'] > 0) ? $_GET['after_user_id'] : 0;
foreach (Wo_GetAllUsers(20, 'ManageUsers', $_POST, $after) as $wo['userlist']) {
$html .= Wo_LoadAdminPage('manage-users/list');
}
$data = array(
'status' => 200,
'html' => $html
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'get_more_pages') {
$html = '';
$after = (isset($_GET['after_page_id']) && is_numeric($_GET['after_page_id']) && $_GET['after_page_id'] > 0) ? $_GET['after_page_id'] : 0;
foreach (Wo_GetAllPages(20, $after) as $wo['pagelist']) {
$html .= Wo_LoadAdminPage('manage-pages/list');
;
}
$data = array(
'status' => 200,
'html' => $html
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'get_more_groups') {
$html = '';
$after = (isset($_GET['after_group_id']) && is_numeric($_GET['after_group_id']) && $_GET['after_group_id'] > 0) ? $_GET['after_group_id'] : 0;
foreach (Wo_GetAllGroups(20, $after) as $wo['grouplist']) {
$html .= Wo_LoadAdminPage('manage-groups/list');
;
}
$data = array(
'status' => 200,
'html' => $html
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update_users_setting' && isset($_POST['user_lastseen'])) {
$delete_follow_table = 0;
$saveSetting = false;
foreach ($_POST as $key => $value) {
$saveSetting = Wo_SaveConfig($key, $value);
}
if ($saveSetting === true) {
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'get_more_posts') {
$html = '';
$postsData = array(
'limit' => 10,
'after_post_id' => Wo_Secure($_GET['after_post_id'])
);
foreach (Wo_GetAllPosts($postsData) as $wo['story']) {
$html .= Wo_LoadAdminPage('manage-posts/list');
}
$data = array(
'status' => 200,
'html' => $html
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_fund' && Wo_CheckSession($hash_id) === true) {
if (!empty($_POST['fund_id'])) {
$id = Wo_Secure($_POST['fund_id']);
$fund = $db->where('id', $id)->getOne(T_FUNDING);
if (!empty($fund)) {
@Wo_DeleteFromToS3($fund->image);
if (file_exists($fund->image)) {
try {
unlink($fund->image);
}
catch (Exception $e) {
}
}
$db->where('id', $id)->delete(T_FUNDING);
$raise = $db->where('funding_id', $id)->get(T_FUNDING_RAISE);
$db->where('funding_id', $id)->delete(T_FUNDING_RAISE);
$posts = $db->where('fund_id', $id)->get(T_POSTS);
if (!empty($posts)) {
foreach ($posts as $key => $value) {
$db->where('parent_id', $value->id)->delete(T_POSTS);
}
}
$db->where('fund_id', $id)->delete(T_POSTS);
foreach ($raise as $key => $value) {
$raise_posts = $db->where('fund_raise_id', $value->id)->get(T_POSTS);
if (!empty($raise_posts)) {
foreach ($posts as $key => $value1) {
$db->where('parent_id', $value1->id)->delete(T_POSTS);
}
}
$db->where('fund_raise_id', $value->id)->delete(T_POSTS);
}
$data['status'] = 200;
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_post' && Wo_CheckSession($hash_id) === true) {
if (!empty($_POST['post_id'])) {
if (Wo_DeletePost($_POST['post_id'])) {
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_reported_content' && (Wo_IsAdmin() || Wo_IsModerator())) {
if (!empty($_GET['id']) && !empty($_GET['type']) && !empty($_GET['report_id'])) {
$type = Wo_Secure($_GET['type']);
$id = Wo_Secure($_GET['id']);
$report = Wo_Secure($_GET['report_id']);
if ($type == 'post' && Wo_DeletePost($id) === true) {
$deleteReport = Wo_DeleteReport($report);
if ($deleteReport === true) {
$data = array(
'status' => 200,
'html' => Wo_CountUnseenReports()
);
}
}
if ($type == 'user' && Wo_DeleteUser($id) === true) {
$deleteReport = Wo_DeleteReport($report);
if ($deleteReport === true) {
$data = array(
'status' => 200,
'html' => Wo_CountUnseenReports()
);
}
}
if ($type == 'page' && Wo_DeletePage($id) === true) {
$deleteReport = Wo_DeleteReport($report);
if ($deleteReport === true) {
$data = array(
'status' => 200,
'html' => Wo_CountUnseenReports()
);
}
}
if ($type == 'group' && Wo_DeleteGroup($id) === true) {
$deleteReport = Wo_DeleteReport($report);
if ($deleteReport === true) {
$data = array(
'status' => 200,
'html' => Wo_CountUnseenReports()
);
}
}
if ($type == 'comment' && Wo_DeletePostComment($id) === true) {
$deleteReport = Wo_DeleteReport($report);
if ($deleteReport === true) {
$data = array(
'status' => 200,
'html' => Wo_CountUnseenReports()
);
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'mark_as_safe') {
if (!empty($_GET['report_id'])) {
$deleteReport = Wo_DeleteReport($_GET['report_id']);
if ($deleteReport === true) {
$data = array(
'status' => 200,
'html' => Wo_CountUnseenReports()
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_verification') {
if (!empty($_GET['id'])) {
if (Wo_DeleteVerificationRequest($_GET['id']) === true) {
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_game') {
if (!empty($_GET['game_id'])) {
if (Wo_DeleteGame($_GET['game_id']) === true) {
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_gift') {
if (!empty($_GET['gift_id'])) {
if (Wo_DeleteGift($_GET['gift_id']) === true) {
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_sticker') {
if (!empty($_GET['sticker_id'])) {
if (Wo_DeleteSticker($_GET['sticker_id']) === true) {
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'verify_user' && Wo_CheckMainSession($hash_id) === true) {
if (!empty($_GET['id'])) {
$type = '';
if (!empty($_GET['type'])) {
$type = $_GET['type'];
}
if (Wo_VerifyUser($_GET['id'], $_GET['verification_id'], $type) === true) {
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'send_mail_to_all_users') {
$isset_test = 'off';
if (empty($_POST['message']) || empty($_POST['subject'])) {
$send_errors = $error_icon . $wo['lang']['please_check_details'];
} else {
if (!empty($_POST['test_message'])) {
if ($_POST['test_message'] == 'on') {
$isset_test = 'on';
}
}
if ($isset_test == 'on') {
$send_message_data = array(
'from_email' => $wo['config']['siteEmail'],
'from_name' => $wo['config']['siteName'],
'to_email' => $wo['user']['email'],
'to_name' => $wo['user']['name'],
'subject' => $_POST['subject'],
'charSet' => 'utf-8',
'message_body' => $_POST['message'],
'is_html' => true
);
$send = Wo_SendMessage($send_message_data);
} else {
$users_type = 'all';
$users = array();
if (isset($_POST['selected_emails']) && strlen($_POST['selected_emails']) > 0) {
$user_ids = explode(',', $_POST['selected_emails']);
if (is_array($user_ids) && count($user_ids) > 0) {
foreach ($user_ids as $user_id) {
$users[] = Wo_UserData($user_id);
}
}
} else if ($_POST['send_to'] == 'active') {
$users = Wo_GetAllUsersByType('active');
} else if ($_POST['send_to'] == 'inactive') {
$users = Wo_GetAllUsersByType('inactive');
}
ob_end_clean();
header("Content-Encoding: none");
header("Connection: close");
ignore_user_abort();
ob_start();
header('Content-Type: application/json');
echo json_encode(array(
'status' => 300
));
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
session_write_close();
if (is_callable('fastcgi_finish_request')) {
fastcgi_finish_request();
}
if (is_callable('litespeed_finish_request')) {
litespeed_finish_request();
}
foreach ($users as $user) {
$send_message_data = array(
'from_email' => $wo['config']['siteEmail'],
'from_name' => $wo['config']['siteName'],
'to_email' => $user['email'],
'to_name' => $user['name'],
'subject' => $_POST['subject'],
'charSet' => 'utf-8',
'message_body' => $_POST['message'],
'is_html' => true
);
$send = Wo_SendMessage($send_message_data);
$mail->ClearAddresses();
}
}
}
header("Content-type: application/json");
if (!empty($send_errors)) {
$send_errors_data = array(
'status' => 400,
'message' => $send_errors
);
echo json_encode($send_errors_data);
} else {
$data = array(
'status' => 200
);
echo json_encode($data);
}
exit();
}
if ($s == 'send_mail_to_mock_users') {
$isset_test = 'off';
$types = array(
'week',
'month',
'3month',
'6month',
'9month',
'year',
'all',
'active',
'inactive',
);
if (empty($_POST['message']) || empty($_POST['subject']) || empty($_POST['send_to']) || !in_array($_POST['send_to'], $types)) {
$send_errors = $error_icon . $wo['lang']['please_check_details'];
} else {
if (!empty($_POST['test_message'])) {
if ($_POST['test_message'] == 'on') {
$isset_test = 'on';
}
}
if ($isset_test == 'on') {
$send_message_data = array(
'from_email' => $wo['config']['siteEmail'],
'from_name' => $wo['config']['siteName'],
'to_email' => $wo['user']['email'],
'to_name' => $wo['user']['name'],
'subject' => $_POST['subject'],
'charSet' => 'utf-8',
'message_body' => $_POST['message'],
'is_html' => true
);
$send = Wo_SendMessage($send_message_data);
} else {
$users = array();
if (isset($_POST['selected_emails']) && strlen($_POST['selected_emails']) > 0) {
$user_ids = explode(',', $_POST['selected_emails']);
if (is_array($user_ids) && count($user_ids) > 0) {
foreach ($user_ids as $user_id) {
$users[] = Wo_UserData($user_id);
}
}
}
else if ($_POST['send_to'] == 'active') {
$users = Wo_GetAllUsersByType('active');
} else if ($_POST['send_to'] == 'inactive') {
$users = Wo_GetAllUsersByType('inactive');
} else if ($_POST['send_to'] == 'all') {
$users = Wo_GetAllUsersByType('all');
} else {
$users = Wo_GetUsersByTime($_POST['send_to']);
}
ob_end_clean();
header("Content-Encoding: none");
header("Connection: close");
ignore_user_abort();
ob_start();
header('Content-Type: application/json');
echo json_encode(array(
'status' => 300
));
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
session_write_close();
if (is_callable('fastcgi_finish_request')) {
fastcgi_finish_request();
}
if (is_callable('litespeed_finish_request')) {
litespeed_finish_request();
}
foreach ($users as $user) {
$send_message_data = array(
'from_email' => $wo['config']['siteEmail'],
'from_name' => $wo['config']['siteName'],
'to_email' => $user['email'],
'to_name' => $user['name'],
'subject' => $_POST['subject'],
'charSet' => 'utf-8',
'message_body' => $_POST['message'],
'is_html' => true
);
$send = Wo_SendMessage($send_message_data);
}
}
}
header("Content-type: application/json");
if (!empty($send_errors)) {
$send_errors_data = array(
'status' => 400,
'message' => $send_errors
);
echo json_encode($send_errors_data);
} else {
$data = array(
'status' => 200
);
echo json_encode($data);
}
exit();
}
if ($s == 'get_users_emails' && isset($_GET['name'])) {
$html = '';
$data = array(
'status' => 404
);
if (!empty($_GET['name'])) {
$name = Wo_Secure($_GET['name']);
$users = Wo_GetUsersByName($name, false, 20);
if (count($users) > 0) {
foreach ($users as $user) {
$html .= "<p data-user='" . $user['user_id'] . "'>" . $user['username'] . "</p>";
}
$data['status'] = 200;
$data['html'] = $html;
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_new_announcement') {
if (!empty($_POST['announcement_text'])) {
$html = '';
$id = Wo_AddNewAnnouncement(base64_decode($_POST['announcement_text']));
if ($id > 0) {
$wo['activeAnnouncement'] = Wo_GetAnnouncement($id);
$html .= Wo_LoadAdminPage('manage-announcements/active-list');
$data = array(
'status' => 200,
'text' => $html
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_announcement') {
if (!empty($_GET['id'])) {
$DeleteAnnouncement = Wo_DeleteAnnouncement($_GET['id']);
if ($DeleteAnnouncement === true) {
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'disable_announcement') {
if (!empty($_GET['id'])) {
$html = '';
$DisableAnnouncement = Wo_DisableAnnouncement($_GET['id']);
if ($DisableAnnouncement === true) {
$wo['inactiveAnnouncement'] = Wo_GetAnnouncement($_GET['id']);
$html .= Wo_LoadAdminPage('manage-announcements/inactive-list');
$data = array(
'status' => 200,
'html' => $html
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'activate_announcement') {
if (!empty($_GET['id'])) {
$html = '';
$ActivateAnnouncement = Wo_ActivateAnnouncement($_GET['id']);
if ($ActivateAnnouncement === true) {
$wo['activeAnnouncement'] = Wo_GetAnnouncement($_GET['id']);
$html .= Wo_LoadAdminPage('manage-announcements/active-list');
$data = array(
'status' => 200,
'html' => $html
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update_ads') {
$updated = false;
foreach ($_POST as $key => $ads) {
if ($key != 'hash_id') {
$ad_data = array(
'type' => $key,
'code' => base64_decode($ads),
'active' => (empty($ads)) ? 0 : 1
);
$update = Wo_UpdateAdsCode($ad_data);
if ($update) {
$updated = true;
}
}
}
if ($updated == true) {
$data = array(
'status' => 200
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update_ads_status') {
if (!empty($_GET['type'])) {
if (Wo_UpdateAdActivation($_GET['type']) == 'active') {
$data = array(
'status' => 200
);
} else {
$data = array(
'status' => 300
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_reaction') {
$data['status'] = 400;
$data['message'] = 'Please check your details';
if (!empty($_FILES['wowonder'])) {
$wowonder_image = '';
$add = false;
$insert_data = array();
foreach (Wo_LangsNamesFromDB() as $key => $lang) {
if (!empty($_POST[$lang])) {
$insert_data[$lang] = Wo_Secure($_POST[$lang]);
$add = true;
}
}
if ($add == true && !empty($insert_data)) {
$id = $db->insert(T_LANGS, $insert_data);
$db->where('id', $id)->update(T_LANGS, array(
'lang_key' => $id
));
$data = array(
'status' => 200
);
}
if ($add == true) {
if (!empty($_FILES['wowonder'])) {
$fileInfo = array(
'file' => $_FILES["wowonder"]["tmp_name"],
'name' => $_FILES['wowonder']['name'],
'size' => $_FILES["wowonder"]["size"],
'type' => $_FILES["wowonder"]["type"],
'types' => 'png'
);
$media = Wo_ShareFile($fileInfo, true);
if (!empty($media) && !empty($media['filename'])) {
$wowonder_image = $media['filename'];
} else {
$data['status'] = 400;
$data['message'] = $error_icon . " wowonder image type must be png ";
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if (!empty($wowonder_image)) {
$db->insert(T_REACTIONS_TYPES, array(
'name' => $id,
'wowonder_icon' => $wowonder_image
));
$data = array(
'status' => 200
);
} else {
$data['message'] = 'Invalid image type';
}
} else {
$data['status'] = 400;
$data['message'] = 'Please check your details';
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'reaction_status') {
$data['status'] = 400;
$data['message'] = 'Please check your details';
if (!empty($_POST['id']) && is_numeric($_POST['id']) && $_POST['id'] > 0) {
$active_reactions = $db->where('status', 1)->getValue(T_REACTIONS_TYPES, 'COUNT(*)');
if ($active_reactions > 0) {
$id = Wo_Secure($_POST['id']);
$reaction = $db->where('id', $id)->getOne(T_REACTIONS_TYPES);
if (!empty($reaction)) {
$status = 1;
if ($reaction->status == 1) {
$status = 0;
}
if ($active_reactions == 1 && $status == 0) {
$data['message'] = 'You cant disable all reactions';
} else {
$db->where('id', $id)->update(T_REACTIONS_TYPES, array(
'status' => $status
));
$data = array(
'status' => 200
);
}
}
} else {
$data['message'] = 'You cant disable all reactions';
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_reaction') {
$data['status'] = 400;
$data['message'] = 'Please check your details';
if (!empty($_POST['id']) && is_numeric($_POST['id']) && $_POST['id'] > 0) {
$id = Wo_Secure($_POST['id']);
$reaction = $db->where('id', $id)->getOne(T_REACTIONS_TYPES);
if ($id > 6 && !empty($reaction)) {
$explode2 = @end(explode('.', $reaction->wowonder_icon));
$explode3 = @explode('.', $reaction->wowonder_icon);
$wowonder_small = $explode3[0] . '_small.' . $explode2;
if (file_exists($wowonder_small)) {
@unlink(trim($wowonder_small));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($wowonder_small);
}
if (file_exists($reaction->wowonder_icon)) {
@unlink(trim($reaction->wowonder_icon));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($reaction->wowonder_icon);
}
$db->where('lang_key', $reaction->name)->delete(T_LANGS);
$db->where('reaction', $id)->delete(T_REACTIONS);
$db->where('reaction', $id)->delete(T_BLOG_REACTION);
$db->where('id', $id)->delete(T_REACTIONS_TYPES);
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'get_reaction_form') {
$data['status'] = 400;
$data['message'] = 'Please check your details';
if (!empty($_POST['id']) && is_numeric($_POST['id']) && $_POST['id'] > 0) {
$id = Wo_Secure($_POST['id']);
$reaction = $db->where('id', $id)->getOne(T_REACTIONS_TYPES);
$html = '';
if (!empty($reaction)) {
$lang_html = '';
$langs = Wo_GetLangDetails($reaction->name);
if (count($langs) > 0) {
foreach ($langs as $key => $wo['langs']) {
foreach ($wo['langs'] as $wo['key_'] => $wo['lang_vlaue']) {
$wo['is_editale'] = true;
$lang_html .= Wo_LoadAdminPage('edit-lang/form-list');
}
}
}
$wo['reaction_name'] = $lang_html;
$wo['reaction_id'] = $reaction->id;
$wo['wowonder_icon'] = $reaction->wowonder_icon;
$html = Wo_LoadAdminPage('manage-reactions/form');
$data = array(
'status' => 200,
'html' => $html
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'edit_reaction') {
$data['status'] = 400;
$data['message'] = 'Please check your details';
if (!empty($_POST['id']) && is_numeric($_POST['id']) && $_POST['id'] > 0) {
$id = Wo_Secure($_POST['id']);
$reaction = $db->where('id', $id)->getOne(T_REACTIONS_TYPES);
if (!empty($reaction)) {
$lang_key = $reaction->name;
$langs = Wo_LangsNamesFromDB();
foreach ($_POST as $key => $value) {
if (in_array($key, $langs)) {
$key = Wo_Secure($key);
$value = Wo_Secure($value);
$query = mysqli_query($sqlConnect, "UPDATE " . T_LANGS . " SET `{$key}` = '{$value}' WHERE `lang_key` = '{$lang_key}'");
}
}
$update_data = array();
if (!empty($_FILES['wowonder'])) {
// $cover = getimagesize($_FILES["wowonder"]["tmp_name"]);
// if (!empty($cover) && ($cover[0] > 48 || $cover[1] > 48)) {
// $data['status'] = 400;
// $data['message'] = $error_icon . " wowonder image size should not be more than 48x48 ";
// header("Content-type: application/json");
// echo json_encode($data);
// exit();
// }
$fileInfo = array(
'file' => $_FILES["wowonder"]["tmp_name"],
'name' => $_FILES['wowonder']['name'],
'size' => $_FILES["wowonder"]["size"],
'type' => $_FILES["wowonder"]["type"],
'types' => 'jpeg,png,jpg,gif,svg'
);
$media = Wo_ShareFile($fileInfo, true);
if (!empty($media) && !empty($media['filename'])) {
$update_data['wowonder_icon'] = $media['filename'];
} else {
$data['status'] = 400;
$data['message'] = $error_icon . " wowonder image type must be png ";
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if (!empty($_POST['wowonder_to_use']) && $_POST['wowonder_to_use'] == 1) {
$explode2 = @end(explode('.', $reaction->wowonder_icon));
$explode3 = @explode('.', $reaction->wowonder_icon);
$wowonder_small = $explode3[0] . '_small.' . $explode2;
if (file_exists($reaction->wowonder_icon)) {
@unlink(trim($reaction->wowonder_icon));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($reaction->wowonder_icon);
}
if (file_exists($wowonder_small)) {
@unlink(trim($wowonder_small));
} else if ($wo['config']['amazone_s3'] == 1 || $wo['config']['wasabi_storage'] == 1 || $wo['config']['ftp_upload'] == 1 || $wo['config']['backblaze_storage'] == 1) {
@Wo_DeleteFromToS3($wowonder_small);
}
$update_data['wowonder_icon'] = '';
}
if (!empty($update_data)) {
$db->where('id', $id)->update(T_REACTIONS_TYPES, $update_data);
}
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_new_sub_category') {
$data['status'] = 400;
$data['message'] = 'Please check your details';
$types = array(
'page',
'group',
'product'
);
$all_categories = array(
'page' => $wo['page_categories'],
'group' => $wo['group_categories'],
'product' => $wo['products_categories']
);
if (!empty($_GET['type']) && in_array($_GET['type'], $types) && in_array($_GET['type'], array_keys($all_categories)) && !empty($_POST['category_id']) && in_array($_POST['category_id'], array_keys($all_categories[$_GET['type']]))) {
$type = Wo_Secure($_GET['type']);
$add = false;
$insert_data = array();
foreach (Wo_LangsNamesFromDB() as $key => $lang) {
if (!empty($_POST[$lang])) {
$insert_data[$lang] = Wo_Secure($_POST[$lang]);
$add = true;
}
}
if ($add == true && !empty($insert_data)) {
$id = $db->insert(T_LANGS, $insert_data);
$db->insert(T_SUB_CATEGORIES, array(
'lang_key' => $id,
'category_id' => Wo_Secure($_POST['category_id']),
'type' => $type
));
$db->where('id', $id)->update(T_LANGS, array(
'lang_key' => $id
));
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_sub_category' && !empty($_POST['lang_key'])) {
$types = array(
'page',
'group',
'product'
);
if (!empty($_GET['type']) && in_array($_GET['type'], $types)) {
$lang_key = Wo_Secure($_POST['lang_key']);
$category = $db->where('lang_key', $lang_key)->where('type', Wo_Secure($_GET['type']))->getOne(T_SUB_CATEGORIES);
if (!empty($category)) {
$db->where('lang_key', $lang_key)->delete(T_LANGS);
$db->where('id', $category->id)->delete(T_SUB_CATEGORIES);
if ($_GET['type'] == 'page') {
$db->where('sub_category', $category->id)->update(T_PAGES, array(
'sub_category' => ''
));
}
if ($_GET['type'] == 'group') {
$db->where('sub_category', $category->id)->update(T_GROUPS, array(
'sub_category' => ''
));
resetCache("groups");
}
if ($_GET['type'] == 'product') {
$db->where('sub_category', $category->id)->update(T_PRODUCTS, array(
'sub_category' => ''
));
}
$data['status'] = 200;
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'add_custom_field_form') {
$placement_array = array(
'page',
'group',
'product'
);
$types_array = array(
'textbox',
'textarea',
'selectbox'
);
if (Wo_CheckSession($hash_id) === true && !empty($_POST['name']) && !empty($_POST['type']) && !empty($_POST['description']) && !empty($_POST['placement']) && in_array($_POST['type'], $types_array)) {
$type = Wo_Secure($_POST['type']);
$name = Wo_Secure($_POST['name']);
$description = Wo_Secure($_POST['description']);
$placement = Wo_Secure($_POST['placement']);
$length = 32;
if (!empty($_POST['length'])) {
if (is_numeric($_POST['length']) && $_POST['length'] < 1001) {
$length = Wo_Secure($_POST['length']);
}
}
$required = 'on';
if (!empty($_POST['required']) && in_array($_POST['required'], array(
'on',
'off'
))) {
$required = Wo_Secure($_POST['required']);
}
$data_ = array(
'name' => $name,
'description' => $description,
'length' => $length,
'placement' => $placement,
'required' => $required,
'type' => $type,
'active' => 1
);
if (!empty($_POST['options'])) {
$options = @explode("\n", $_POST['options']);
$data_['options'] = Wo_Secure(implode(',', $options));
}
$add = Wo_RegisterNewCustomField($data_);
if ($add) {
$data['status'] = 200;
}
} else {
$data = array(
'status' => 400,
'message' => 'Please fill all the required fields'
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_custom_field') {
$placement_array = array(
'page',
'group',
'product'
);
if (Wo_CheckMainSession($hash_id) === true && !empty($_GET['id']) && !empty($_GET['type']) && in_array($_GET['type'], $placement_array)) {
$delete = Wo_DeleteCustomField($_GET['id'], $_GET['type']);
if ($delete) {
$data = array(
'status' => 200
);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'get_custom_field_info') {
$placement_array = array(
'page',
'group',
'product'
);
if (Wo_CheckMainSession($hash_id) === true && !empty($_POST['id']) && !empty($_POST['type']) && in_array($_POST['type'], $placement_array)) {
$field = $db->where('id', Wo_Secure($_POST['id']))->where('placement', Wo_Secure($_POST['type']))->getOne(T_CUSTOM_FIELDS);
$html = '';
if (!empty($field)) {
$wo['field'] = $field;
$html = Wo_LoadAdminPage('pages-fields/form');
}
$data = array(
'status' => 200,
'html' => $html
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'edit_custom_field_form') {
$placement_array = array(
'page',
'group',
'product'
);
$types_array = array(
'textbox',
'textarea',
'selectbox'
);
if (Wo_CheckSession($hash_id) === true && !empty($_POST['name']) && !empty($_POST['description']) && !empty($_POST['id']) && !empty($_POST['type']) && !empty($_POST['placement']) && in_array($_POST['type'], $types_array)) {
$field = $db->where('id', Wo_Secure($_POST['id']))->where('placement', Wo_Secure($_POST['placement']))->getOne(T_CUSTOM_FIELDS);
if (!empty($field)) {
$name = Wo_Secure($_POST['name']);
$description = Wo_Secure($_POST['description']);
$type = Wo_Secure($_POST['type']);
$placement = Wo_Secure($_POST['placement']);
$length = 32;
if (!empty($_POST['length'])) {
if (is_numeric($_POST['length']) && $_POST['length'] < 1001) {
$length = Wo_Secure($_POST['length']);
}
}
$required = 'on';
if (!empty($_POST['required']) && in_array($_POST['required'], array(
'on',
'off'
))) {
$required = Wo_Secure($_POST['required']);
}
$data_ = array(
'name' => $name,
'description' => $description,
'length' => $length,
'placement' => $placement,
'required' => $required,
'type' => $type,
'active' => 1
);
if (!empty($_POST['options'])) {
$options = @explode("\n", $_POST['options']);
$data_['options'] = Wo_Secure(implode(',', $options));
}
$add = Wo_UpdateCustomField(Wo_Secure($_POST['id']), $data_);
if ($add) {
$data['status'] = 200;
} else {
$data = array(
'status' => 400,
'message' => 'Please fill all the required fields'
);
}
} else {
$data = array(
'status' => 400,
'message' => 'Please fill all the required fields'
);
}
} else {
$data = array(
'status' => 400,
'message' => 'Please fill all the required fields'
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'approve_blog') {
if (!empty($_POST['blog_id'])) {
$post = $db->where('id', Wo_Secure($_POST['blog_id']))->getOne(T_BLOG);
if (!empty($post)) {
$db->where('id', Wo_Secure($_POST['blog_id']))->update(T_BLOG, array(
'active' => '1'
));
$db->where('blog_id', Wo_Secure($_POST['blog_id']))->update(T_POSTS, array(
'active' => 1
));
$b_post = $db->where('blog_id', Wo_Secure($_POST['blog_id']))->getOne(T_POSTS);
if (!empty($b_post)) {
Wo_RegisterPoint($b_post->id, "createblog", '+', $b_post->user_id);
}
$notification_data_array = array(
'recipient_id' => $post->user,
'type' => 'admin_notification',
'url' => 'index.php?link1=read-blog&id=' . $post->id,
'text' => $wo['lang']['approve_blog'],
'type2' => 'approve_blog'
);
Wo_RegisterNotification($notification_data_array);
}
}
$data['status'] = 200;
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_refund') {
if (!empty($_GET['id'])) {
$request = $db->where('id', Wo_Secure($_GET['id']))->getOne(T_REFUND);
$db->where('id', Wo_Secure($_GET['id']))->delete(T_REFUND);
$data = array(
'status' => 200
);
if (empty($request->order_hash_id)) {
$notification_data_array = array(
'recipient_id' => $request->user_id,
'type' => 'admin_notification',
'url' => 'index.php?link1=home',
'text' => $wo['lang']['refund_decline'],
'type2' => 'refund_decline'
);
Wo_RegisterNotification($notification_data_array);
} else {
$notification_data_array = array(
'recipient_id' => $request->user_id,
'type' => 'admin_notification',
'url' => 'index.php?link1=customer_order&id=' . $request->order_hash_id,
'text' => $wo['lang']['refund_decline'],
'type2' => 'refund_decline'
);
Wo_RegisterNotification($notification_data_array);
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'approve_refund') {
if (!empty($_GET['id'])) {
$request = $db->where('id', Wo_Secure($_GET['id']))->getOne(T_REFUND);
if (!empty($request)) {
if (empty($request->order_hash_id)) {
$price = $wo['pro_packages'][$request->pro_type]['price'];
$db->where('user_id', $request->user_id)->update(T_USERS, array(
'balance' => $db->inc($price),
'is_pro' => 0
));
$db->where('id', Wo_Secure($_GET['id']))->delete(T_REFUND);
$notification_data_array = array(
'recipient_id' => $request->user_id,
'type' => 'admin_notification',
'url' => 'index.php?link1=setting&page=payments',
'text' => $wo['lang']['refund_approve'],
'type2' => 'refund_approve'
);
Wo_RegisterNotification($notification_data_array);
} else {
$total_final_price = 0;
$price = 0;
$orders = $db->where('hash_id', $request->order_hash_id)->get(T_USER_ORDERS);
foreach ($orders as $key => $order) {
$db->where('id', $order->product_id)->update(T_PRODUCTS, array(
'units' => $db->inc($order->units)
));
$total_final_price += $order->final_price;
$price += $order->price;
}
$order = $db->where('hash_id', $request->order_hash_id)->getOne(T_USER_ORDERS);
$user = $db->where('user_id', $order->product_owner_id)->update(T_USERS, array(
'balance' => $db->dec($total_final_price)
));
$user = $db->where('user_id', $request->user_id)->update(T_USERS, array(
'wallet' => $db->inc($price)
));
$db->where('hash_id', $request->order_hash_id)->update(T_USER_ORDERS, array(
'status' => 'canceled'
));
cache($request->user_id, 'users', 'delete');
cache($order->product_owner_id, 'users', 'delete');
$notification_data_array = array(
'recipient_id' => $request->user_id,
'type' => 'admin_notification',
'url' => 'index.php?link1=customer_order&id=' . $request->order_hash_id,
'text' => $wo['lang']['refund_approve'],
'type2' => 'refund_approve'
);
Wo_RegisterNotification($notification_data_array);
$db->where('id', Wo_Secure($_GET['id']))->delete(T_REFUND);
}
}
$data = array(
'status' => 200
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'test_cloud') {
if ($wo['config']['cloud_upload'] == 0 || empty($wo['config']['cloud_file_path']) || empty($wo['config']['cloud_bucket_name'])) {
$data['message'] = 'Please enable Google Cloud Storage and fill all fields.';
} elseif (!file_exists($wo['config']['cloud_file_path'])) {
$data['message'] = 'Google Cloud File not found on your server Please upload it to your server.';
} else {
require_once 'assets/libraries/google-lib/vendor/autoload.php';
try {
$storage = new StorageClient(array(
'keyFilePath' => $wo['config']['cloud_file_path']
));
// set which bucket to work in
$bucket = $storage->bucket($wo['config']['cloud_bucket_name']);
if ($bucket) {
$array = array(
'upload/photos/d-avatar.jpg',
$wo["userDefaultBlur"],
'upload/photos/f-avatar.jpg',
'upload/photos/d-cover.jpg',
'upload/photos/d-group.jpg',
'upload/photos/d-page.jpg',
'upload/photos/d-blog.jpg',
'upload/photos/game-icon.png',
'upload/photos/d-film.jpg',
'upload/photos/incognito.png',
'upload/photos/app-default-icon.png'
);
foreach ($array as $key => $value) {
$fileContent = file_get_contents($value);
// upload/replace file
$storageObject = $bucket->upload($fileContent, array(
'name' => $value
));
}
$data['status'] = 200;
} else {
$data['message'] = 'Error in connection';
}
}
catch (Exception $e) {
$data['message'] = "" . $e;
// maybe invalid private key ?
// print $e;
// exit();
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'delete_ban') {
if (!empty($_POST['id']) && is_numeric($_POST['id']) && $_POST['id'] > 0) {
if (Wo_DeleteBanned(Wo_Secure($_POST['id'])) === true) {
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
}
if ($s == 'new_ban') {
if (!empty($_POST['id'])) {
if (Wo_BanNewIp(Wo_Secure($_POST['id']))) {
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
}
if ($s == 'ReadNotify') {
$db->where('recipient_id', 0)->where('admin', 1)->where('seen', 0)->update(T_NOTIFICATION, array(
'seen' => time()
));
}
if ($s == 'change_mode') {
if (!empty($_COOKIE['mode'])) {
if ($_COOKIE['mode'] == 'night') {
setcookie("mode", 'day', time() + (10 * 365 * 24 * 60 * 60), '/');
$_COOKIE['mode'] = 'day';
} else {
setcookie("mode", 'night', time() + (10 * 365 * 24 * 60 * 60), '/');
$_COOKIE['mode'] = 'night';
}
} else {
setcookie("mode", 'night', time() + (10 * 365 * 24 * 60 * 60), '/');
$_COOKIE['mode'] = 'night';
}
}
if ($s == 'permission') {
if (!empty($_GET['user_id']) && is_numeric($_GET['user_id']) && $_GET['user_id'] > 0 && !empty($_GET['type']) && in_array($_GET['type'], array(
'normal',
'moderator',
'admin'
))) {
$update = array(
'admin' => '0'
);
if ($_GET['type'] == 'admin') {
$update = array(
'admin' => '1'
);
}
if ($_GET['type'] == 'moderator') {
$update = array(
'admin' => '2'
);
}
$db->where('user_id', Wo_Secure($_GET['user_id']))->update(T_USERS, $update);
$data = array(
'status' => 200
);
cache($_GET['user_id'], 'users', 'delete');
header("Content-type: application/json");
echo json_encode($data);
exit();
}
}
if ($s == 'update_moderator_permission') {
if (!empty($_GET['permission']) && !empty($_GET['user_id']) && is_numeric($_GET['user_id']) && $_GET['user_id'] > 0 && in_array($_GET['permission_val'], array(
0,
1
))) {
$wo['mod_pages'] = array(
'dashboard',
'post-settings',
'manage-stickers',
'manage-gifts',
'manage-users',
'online-users',
'manage-stories',
'manage-pages',
'manage-groups',
'manage-posts',
'manage-articles',
'manage-events',
'manage-forum-threads',
'manage-forum-messages',
'manage-movies',
'manage-games',
'add-new-game',
'manage-user-ads',
'manage-reports',
'manage-third-psites',
'edit-movie',
'bank-receipts',
'job-categories',
'manage-jobs'
);
$user = $db->where('user_id', Wo_Secure($_GET['user_id']))->where('admin', '2')->getOne(T_USERS);
if (!empty($user)) {
$wo['all_pages'] = scandir('admin-panel/pages');
unset($wo['all_pages'][0]);
unset($wo['all_pages'][1]);
unset($wo['all_pages'][2]);
if (!empty($user->permission)) {
$permission = json_decode($user->permission, true);
$permission[Wo_Secure($_GET['permission'])] = Wo_Secure($_GET['permission_val']);
} else {
$permission = array();
if (!empty($wo['all_pages'])) {
foreach ($wo['all_pages'] as $key => $value) {
if (in_array($value, $wo['mod_pages'])) {
$permission[$value] = 1;
} else {
$permission[$value] = 0;
}
}
}
$permission[Wo_Secure($_GET['permission'])] = Wo_Secure($_GET['permission_val']);
}
$permission = json_encode($permission);
$db->where('user_id', Wo_Secure($_GET['user_id']))->update(T_USERS, array(
'permission' => $permission
));
cache($_GET['user_id'], 'users', 'delete');
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'exchange') {
if ($wo['config']['exchange_update'] < time()) {
$request = fetchDataFromURL("https://v6.exchangerate-api.com/v6/".$wo['config']['exchangerate_key']."/latest/".$wo['config']['currency']);
$exchange = json_decode($request, true);
if (!empty($exchange) && $exchange['result'] == 'success' && !empty($exchange['conversion_rates'])) {
Wo_SaveConfig('exchange', json_encode($exchange['conversion_rates']));
Wo_SaveConfig('exchange_update', (time() + (60 * 60 * 12)));
}
}
$data = array(
'status' => 200
);
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'edit-forum') {
if (empty($_POST['name']) || empty($_POST['description']) || empty($_POST['section']) || empty($_POST['id']) || !is_numeric($_POST['id'])) {
$error = $error_icon . $wo['lang']['please_check_details'];
} else {
if (strlen($_POST['name']) < 5) {
$error = $error_icon . $wo['lang']['title_more_than10'];
}
if (strlen($_POST['name']) > 100) {
$error = $error_icon . $wo['lang']['please_check_details'];
}
if (strlen($_POST['description']) < 5) {
$error = $error_icon . $wo['lang']['desc_more_than32'];
}
if (strlen($_POST['description']) > 190) {
$error = $error_icon . $wo['lang']['please_check_details'];
}
}
if (empty($error)) {
$forum = $db->where('id',Wo_Secure($_POST['id']))->getOne(T_FORUMS);
if (!empty($forum)) {
$registration_data = array(
'name' => Wo_Secure($_POST['name']),
'description' => Wo_Secure($_POST['description']),
'sections' => Wo_Secure($_POST['section'])
);
$db->where('id',Wo_Secure($_POST['id']))->update(T_FORUMS,$registration_data);
$data = array(
'status' => 200
);
} else {
$data = array(
'status' => 500,
'message' => $wo['lang']['please_check_details']
);
}
} else {
$data = array(
'status' => 500,
'message' => $error
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'edit-forum-section') {
if (empty($_POST['name']) || empty($_POST['description'])) {
$error = $error_icon . $wo['lang']['please_check_details'];
} else {
if (strlen($_POST['name']) < 5) {
$error = $error_icon . $wo['lang']['title_more_than10'];
}
if (strlen($_POST['name']) > 145) {
$error = $error_icon . $wo['lang']['please_check_details'];
}
if (strlen($_POST['description']) < 5) {
$error = $error_icon . $wo['lang']['desc_more_than32'];
}
}
if (empty($error)) {
$forum = $db->where('id',Wo_Secure($_POST['id']))->getOne(T_FORUM_SEC);
if (!empty($forum)) {
$registration_data = array(
'section_name' => Wo_Secure($_POST['name']),
'description' => Wo_Secure($_POST['description'])
);
$db->where('id',Wo_Secure($_POST['id']))->update(T_FORUM_SEC,$registration_data);
$data = array(
'status' => 200
);
}else {
$data = array(
'status' => 500,
'message' => $wo['lang']['please_check_details']
);
}
} else {
$data = array(
'status' => 500,
'message' => $error
);
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'insert-invitation') {
$data = array(
'status' => 200,
'html' => ''
);
$wo['invitation'] = Wo_InsertAdminInvitation();
if ($wo['invitation'] && is_array($wo['invitation'])) {
$data['html'] = Wo_LoadAdminPage('manage-invitation-keys/list');
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'rm-invitation' && isset($_GET['id']) && is_numeric($_GET['id'])) {
$data = array(
'status' => 304
);
if (Wo_DeleteAdminInvitation('id', $_GET['id'])) {
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'update-sitemap') {
$rate = (isset($_POST['rate']) && strlen($_POST['rate']) > 0) ? $_POST['rate'] : false;
$data = array(
'status' => 304
);
if (Wo_GenirateSiteMap($rate)) {
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'rm-user-invitation' && isset($_GET['id']) && is_numeric($_GET['id'])) {
$data = array(
'status' => 304
);
if (Wo_DeleteUserInvitation('id', $_GET['id'])) {
$data['status'] = 200;
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'test_backblaze') {
$server_output = BackblazeConnect(array('apiUrl' => 'https://api.backblazeb2.com',
'uri' => '/b2api/v2/b2_authorize_account',
));
$data['status'] = 404;
if (!empty($server_output)) {
$result = json_decode($server_output,true);
if (!empty($result['authorizationToken']) && !empty($result['apiUrl']) && !empty($result['accountId'])) {
$info = BackblazeConnect(array('apiUrl' => $result['apiUrl'],
'uri' => '/b2api/v2/b2_list_buckets',
'accountId' => $result['accountId'],
'authorizationToken' => $result['authorizationToken'],
));
if (!empty($info)) {
$info = json_decode($info,true);
if (!empty($info) && !empty($info['buckets'])) {
$bucketId = '';
foreach ($info['buckets'] as $key => $value) {
if ($value['bucketId'] == $wo['config']['backblaze_bucket_id']) {
$db->where('name', 'backblaze_bucket_name')->update(T_CONFIG, array('value' => $value['bucketName']));
$bucketId = $value['bucketId'];
break;
}
}
if (!empty($bucketId)) {
$data['status'] = 200;
$array = array(
'upload/photos/d-avatar.jpg',
$wo["userDefaultBlur"],
'upload/photos/f-avatar.jpg',
'upload/photos/d-cover.jpg',
'upload/photos/d-group.jpg',
'upload/photos/d-page.jpg',
'upload/photos/d-blog.jpg',
'upload/photos/game-icon.png',
'upload/photos/d-film.jpg',
'upload/photos/app-default-icon.png',
'upload/photos/incognito.png',
'upload/.htaccess',
'upload/files/2022/09/EAufYfaIkYQEsYzwvZha_01_4bafb7db09656e1ecb54d195b26be5c3_file.svg',
'upload/files/2022/09/2MRRkhb7rDhUNuClfOfc_01_76c3c700064cfaef049d0bb983655cd4_file.svg',
'upload/files/2022/09/D91CP5YFfv74GVAbYtT7_01_288940ae12acf0198d590acbf11efae0_file.svg',
'upload/files/2022/09/cFNOXZB1XeWRSdXXEdlx_01_7d9c4adcbe750bfc8e864c69cbed3daf_file.svg',
'upload/files/2022/09/yKmDaNA7DpA7RkCRdoM6_01_eb391ca40102606b78fef1eb70ce3c0f_file.svg',
'upload/files/2022/09/iZcVfFlay3gkABhEhtVC_01_771d67d0b8ae8720f7775be3a0cfb51a_file.svg'
);
foreach ($array as $key => $value) {
$upload = Wo_UploadToS3($value, array(
'delete' => 'no'
));
}
}
}
else{
$data['status'] = 300;
}
}
}
}
header("Content-type: application/json");
echo json_encode($data);
exit();
}
if ($s == 'uploadFiles') {
if (!empty($_GET['file']) && !empty($_GET['path'])) {
$file = Wo_Secure(base64_decode($_GET['path']));
$storage = Wo_Secure($_GET['file']);
$checkIfFileExistsInUpload = $db->where('filename', Wo_Secure($file))->where('storage', $storage)->getOne(T_UPLOADED_MEDIA);
if (empty($checkIfFileExistsInUpload)) {
try {
$uploadToS3 = Wo_UploadToS3($file, ["delete" => "no"]);
if ($uploadToS3) {
$insert = $db->insert(T_UPLOADED_MEDIA, ['filename' => Wo_Secure($file), 'storage' => $storage, 'time' => time()]);
$data = ['status' => 200, 'fullPath' => Wo_GetMedia(str_replace("\\", "/", $file))];
} else {
$data = ['status' => 400, 'message' => "Error found while uploading, please check settings."];
}
} catch (Exception $e) {
$data = ['status' => 400, 'message' => $e->getMessage()];
}
} else {
$data = ['status' => 400, 'message' => "File already uploaded."];
}
}
header('Content-Type: application/json; charset=utf-8');
echo json_encode($data);
exit();
}
}