| 1 |
<?php |
| 2 |
/** |
| 3 |
* All Dashboard handler |
| 4 |
* @package ULTP\Dashboard |
| 5 |
* @since 4.1.11 |
| 6 |
*/ |
| 7 |
|
| 8 |
namespace ULTP; |
| 9 |
defined('ABSPATH') || exit; |
| 10 |
|
| 11 |
/* |
| 12 |
* Caches class. |
| 13 |
*/ |
| 14 |
class Dashboard { |
| 15 |
|
| 16 |
/* |
| 17 |
* Setup class. |
| 18 |
* @since 4.1.11 |
| 19 |
*/ |
| 20 |
public function __construct() { |
| 21 |
add_action( 'rest_api_init', array($this, 'ultp_register_route') ); |
| 22 |
} |
| 23 |
|
| 24 |
/** |
| 25 |
* REST API Action |
| 26 |
* |
| 27 |
* @since 4.1.11 |
| 28 |
* @return NULL |
| 29 |
*/ |
| 30 |
public function ultp_register_route() { |
| 31 |
register_rest_route( |
| 32 |
'ultp/v2', |
| 33 |
'/addon_block_action/', |
| 34 |
array( |
| 35 |
array( |
| 36 |
'methods' => 'POST', |
| 37 |
'callback' => array($this, 'addon_block_action'), |
| 38 |
'permission_callback' => function () { |
| 39 |
return current_user_can('manage_options'); |
| 40 |
}, |
| 41 |
'args' => array() |
| 42 |
) |
| 43 |
) |
| 44 |
); |
| 45 |
register_rest_route( |
| 46 |
'ultp/v2', |
| 47 |
'/save_plugin_settings/', |
| 48 |
array( |
| 49 |
array( |
| 50 |
'methods' => 'POST', |
| 51 |
'callback' => array($this, 'save_plugin_settings'), |
| 52 |
'permission_callback' => function () { |
| 53 |
return current_user_can('manage_options'); |
| 54 |
}, |
| 55 |
'args' => array() |
| 56 |
) |
| 57 |
) |
| 58 |
); |
| 59 |
register_rest_route( |
| 60 |
'ultp/v2', |
| 61 |
'/get_all_settings/', |
| 62 |
array( |
| 63 |
array( |
| 64 |
'methods' => 'POST', |
| 65 |
'callback' => array($this, 'get_all_settings'), |
| 66 |
'permission_callback' => function () { |
| 67 |
return current_user_can('manage_options'); |
| 68 |
}, |
| 69 |
'args' => array() |
| 70 |
) |
| 71 |
) |
| 72 |
); |
| 73 |
register_rest_route( |
| 74 |
'ultp/v2', |
| 75 |
'/dashborad/', |
| 76 |
array( |
| 77 |
array( |
| 78 |
'methods' => 'POST', |
| 79 |
'callback' => array( $this, 'get_dashboard_callback'), |
| 80 |
'permission_callback' => function () { |
| 81 |
return current_user_can( 'manage_options' ); |
| 82 |
}, |
| 83 |
'args' => array() |
| 84 |
) |
| 85 |
) |
| 86 |
); |
| 87 |
register_rest_route( |
| 88 |
'ultp/v2', |
| 89 |
'/wizard_site_status/', |
| 90 |
array( |
| 91 |
array( |
| 92 |
'methods' => 'POST', |
| 93 |
'callback' => array( $this, 'wizard_site_status_callback'), |
| 94 |
'permission_callback' => function () { |
| 95 |
return current_user_can( 'manage_options' ); |
| 96 |
}, |
| 97 |
'args' => array() |
| 98 |
) |
| 99 |
) |
| 100 |
); |
| 101 |
register_rest_route( |
| 102 |
'ultp/v2', |
| 103 |
'/send_initial_plugin_data/', |
| 104 |
array( |
| 105 |
array( |
| 106 |
'methods' => 'POST', |
| 107 |
'callback' => array( $this, 'send_initial_plugin_data_callback'), |
| 108 |
'permission_callback' => function () { |
| 109 |
return current_user_can( 'manage_options' ); |
| 110 |
}, |
| 111 |
'args' => array() |
| 112 |
) |
| 113 |
) |
| 114 |
); |
| 115 |
register_rest_route( |
| 116 |
'ultp/v2', |
| 117 |
'/initial_setup_complete/', |
| 118 |
array( |
| 119 |
array( |
| 120 |
'methods' => 'POST', |
| 121 |
'callback' => array( $this, 'initial_setup_complete_callback'), |
| 122 |
'permission_callback' => function () { |
| 123 |
return current_user_can( 'manage_options' ); |
| 124 |
}, |
| 125 |
'args' => array() |
| 126 |
) |
| 127 |
) |
| 128 |
); |
| 129 |
|
| 130 |
register_rest_route( |
| 131 |
'ultp/v2', |
| 132 |
'/template_action/', |
| 133 |
array( |
| 134 |
array( |
| 135 |
'methods' => 'POST', |
| 136 |
'callback' => array($this, 'template_page_action'), |
| 137 |
'permission_callback' => function () { |
| 138 |
return current_user_can('manage_options'); |
| 139 |
}, |
| 140 |
'args' => array() |
| 141 |
) |
| 142 |
) |
| 143 |
); |
| 144 |
} |
| 145 |
|
| 146 |
|
| 147 |
/** |
| 148 |
* Save addon / blocks on/off data |
| 149 |
* |
| 150 |
* @since v.3.0.0 |
| 151 |
* @param STRING |
| 152 |
* @return ARRAY | Inserted Post Url |
| 153 |
*/ |
| 154 |
public function addon_block_action($server) { |
| 155 |
$post = $server->get_params(); |
| 156 |
$addon_name = isset($post['key'])? ultimate_post()->ultp_rest_sanitize_params($post['key']):''; |
| 157 |
$addon_value = isset($post['value'])? ultimate_post()->ultp_rest_sanitize_params($post['value']):''; |
| 158 |
if ($addon_name) { |
| 159 |
$addon_data = ultimate_post()->get_setting(); |
| 160 |
$addon_data[$addon_name] = $addon_value; |
| 161 |
$GLOBALS['ultp_settings'][$addon_name] = $addon_value; |
| 162 |
update_option('ultp_options', $addon_data); |
| 163 |
} |
| 164 |
return array( |
| 165 |
'success' => true, |
| 166 |
'message' => ($addon_value == 'true' || $addon_value == 'false') ? ($addon_value == 'true' ? __('The addon has been enabled.', 'ultimate-post') : __('The addon has been disabled.', 'ultimate-post') ) : ($addon_value == 'yes' ? __('The block has been enabled.', 'ultimate-post') : __('The block has been disabled.', 'ultimate-post')) |
| 167 |
); |
| 168 |
} |
| 169 |
|
| 170 |
/** |
| 171 |
* Save Settings of Option Panel |
| 172 |
* |
| 173 |
* @since v.3.0.0 |
| 174 |
* @return NULL |
| 175 |
*/ |
| 176 |
public function save_plugin_settings($server) { |
| 177 |
$post = $server->get_params(); |
| 178 |
$data = ultimate_post()->ultp_rest_sanitize_params($post['settings']); |
| 179 |
if (count($data) > 0) { |
| 180 |
foreach ($data as $key => $val) { |
| 181 |
ultimate_post()->set_setting($key, $val); |
| 182 |
} |
| 183 |
do_action('ultimate_post_after_setting_save'); |
| 184 |
} |
| 185 |
return rest_ensure_response([ |
| 186 |
'success' => true, |
| 187 |
'message' => __('You have successfully saved the settings data.', 'ultimate-post') , |
| 188 |
'wishListArr' => wp_json_encode($data)]); |
| 189 |
} |
| 190 |
|
| 191 |
/** |
| 192 |
* Save Settings of Option Panel |
| 193 |
* |
| 194 |
* @since v.3.0.0 |
| 195 |
* @return NULL |
| 196 |
*/ |
| 197 |
public function get_all_settings($server) { |
| 198 |
return rest_ensure_response(['success' => true, 'settings' => ultimate_post()->get_setting()]); |
| 199 |
} |
| 200 |
|
| 201 |
/** |
| 202 |
* Saved Template & Custom Font Actions |
| 203 |
* |
| 204 |
* @since v.3.0.0 |
| 205 |
* @param STRING |
| 206 |
* @return ARRAY | Inserted Post Url |
| 207 |
*/ |
| 208 |
public function get_dashboard_callback($server) { |
| 209 |
$post = $server->get_params(); |
| 210 |
$request_type = isset($post['type'])?ultimate_post()->ultp_rest_sanitize_params($post['type']):''; |
| 211 |
$pType = isset($post['pType'])?ultimate_post()->ultp_rest_sanitize_params($post['pType']):''; |
| 212 |
switch ($request_type) { |
| 213 |
|
| 214 |
case 'saved_templates': |
| 215 |
$post_per_page = 10; |
| 216 |
$data = []; |
| 217 |
$args = array( |
| 218 |
'post_type' => $pType, |
| 219 |
'post_status' => array('publish', 'draft'), |
| 220 |
'posts_per_page' => $post_per_page, |
| 221 |
'paged' => isset($post['pages'])?ultimate_post()->ultp_rest_sanitize_params($post['pages']):1 |
| 222 |
); |
| 223 |
|
| 224 |
if (isset($post['search'])) { |
| 225 |
$args['paged'] = 1; |
| 226 |
$args['s'] = ultimate_post()->ultp_rest_sanitize_params($post['search']); |
| 227 |
} |
| 228 |
|
| 229 |
$the_query = new \WP_Query( $args ); |
| 230 |
if ( $the_query->have_posts() ) { |
| 231 |
while ( $the_query->have_posts() ) { |
| 232 |
$the_query->the_post(); |
| 233 |
$final = [ |
| 234 |
'id' => get_the_ID(), |
| 235 |
'title' => get_the_title(), |
| 236 |
'date' => get_the_modified_date('Y/m/d h:i a'), |
| 237 |
'status' => get_post_status(), |
| 238 |
'edit' => get_edit_post_link() |
| 239 |
]; |
| 240 |
|
| 241 |
if ($pType == 'ultp_custom_font') { |
| 242 |
$final = array_merge($final ,['woff' => false,'woff2' => false,'ttf' => false,'svg' => false,'eot' => false]); |
| 243 |
$settings = get_post_meta( get_the_ID(), '__font_settings', true ); |
| 244 |
foreach ($settings as $key => $value) { |
| 245 |
if ($value['ttf']) { $final['ttf'] = true; } |
| 246 |
if ($value['svg']) { $final['svg'] = true; } |
| 247 |
if ($value['eot']) { $final['eot'] = true; } |
| 248 |
if ($value['woff']) { $final['woff'] = true; } |
| 249 |
if ($value['woff2']) { $final['woff2'] = true; } |
| 250 |
} |
| 251 |
$final['font_settings'] = $settings; |
| 252 |
} |
| 253 |
$data[] = $final; |
| 254 |
} |
| 255 |
} |
| 256 |
wp_reset_postdata(); |
| 257 |
return array( |
| 258 |
'success' => true, |
| 259 |
'data' => $data, |
| 260 |
'new' => ($pType == 'ultp_custom_font' ? admin_url('post-new.php?post_type=ultp_custom_font') : admin_url('post-new.php?post_type=ultp_templates')), |
| 261 |
'found' => $the_query->found_posts, |
| 262 |
'pages' => $the_query->max_num_pages |
| 263 |
); |
| 264 |
break; |
| 265 |
|
| 266 |
case 'action_draft': |
| 267 |
case 'action_publish': |
| 268 |
if (isset($post['ids']) && is_array($post['ids'])) { |
| 269 |
$post_ids = ultimate_post()->ultp_rest_sanitize_params($post['ids']); |
| 270 |
foreach ($post_ids as $id) { |
| 271 |
wp_update_post(array( |
| 272 |
'ID' => $id, |
| 273 |
'post_status' => str_replace('action_', '',$request_type) |
| 274 |
)); |
| 275 |
} |
| 276 |
return array( |
| 277 |
'success' => true, |
| 278 |
'message' => __('Status changed for selected items.', 'ultimate-post') |
| 279 |
); |
| 280 |
} |
| 281 |
break; |
| 282 |
|
| 283 |
case 'license_action': |
| 284 |
$message = ''; |
| 285 |
|
| 286 |
if ( isset($post['edd_ultp_license_key']) && function_exists('ultimate_post_pro') ) { |
| 287 |
$is_success = false; |
| 288 |
$license = trim( ultimate_post()->ultp_rest_sanitize_params( $post['edd_ultp_license_key'] ) ); |
| 289 |
|
| 290 |
if ($license && $license != '******************') { |
| 291 |
update_option( 'edd_ultp_license_key', $license); |
| 292 |
$api_params = array( |
| 293 |
'edd_action' => 'activate_license', |
| 294 |
'license' => $license, |
| 295 |
'item_id' => 181, |
| 296 |
'url' => home_url() |
| 297 |
); |
| 298 |
|
| 299 |
$response = wp_remote_post( |
| 300 |
'https://account.wpxpo.com', |
| 301 |
array( |
| 302 |
'timeout' => 15, |
| 303 |
'sslverify' => false, |
| 304 |
'body' => $api_params |
| 305 |
) |
| 306 |
); |
| 307 |
|
| 308 |
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) { |
| 309 |
$message = ( is_wp_error( $response ) && ! empty( $response->get_error_message() ) ) ? $response->get_error_message() : __('An error occurred, please try again.', 'ultimate-post-pro'); |
| 310 |
} else { |
| 311 |
$license_data = json_decode( wp_remote_retrieve_body( $response ) ); |
| 312 |
if ( false === $license_data->success ) { |
| 313 |
update_option( 'edd_ultp_license_key', ''); |
| 314 |
switch( $license_data->error ) { |
| 315 |
case 'expired' : |
| 316 |
$message = sprintf( |
| 317 |
__('Your license key expired on %s.', 'ultimate-post'), |
| 318 |
date_i18n( get_option( 'date_format' ), strtotime( $license_data->expires, current_time( 'timestamp' ) ) ) |
| 319 |
); |
| 320 |
break; |
| 321 |
case 'revoked' : |
| 322 |
$message = __('Your license key has been disabled.', 'ultimate-post'); |
| 323 |
break; |
| 324 |
case 'missing' : |
| 325 |
$message = __('Invalid license.', 'ultimate-post'); |
| 326 |
break; |
| 327 |
case 'invalid' : |
| 328 |
case 'site_inactive': |
| 329 |
$message = __( 'Your license is not active for this URL.', 'ultimate-post' ); |
| 330 |
break; |
| 331 |
case 'item_name_mismatch': |
| 332 |
$message = __( 'This appears to be an invalid license key.', 'ultimate-post' ); |
| 333 |
break; |
| 334 |
case 'no_activations_left': |
| 335 |
$message = __( 'Your license key has reached its activation limit.', 'ultimate-post' ); |
| 336 |
break; |
| 337 |
default : |
| 338 |
$message = __( 'An error occurred, please try again.', 'ultimate-post' ); |
| 339 |
break; |
| 340 |
} |
| 341 |
} else { |
| 342 |
$message = __('Your license key has been updated.', 'ultimate-post'); |
| 343 |
$is_success = true; |
| 344 |
} |
| 345 |
update_option( 'edd_ultp_license_status', $license_data->license ); |
| 346 |
update_option( 'edd_ultp_license_expire', $license_data->expires ); |
| 347 |
update_option( 'edd_ultp_activations_left', $license_data->activations_left ); |
| 348 |
|
| 349 |
} |
| 350 |
} else { |
| 351 |
$message = __( 'Invalid license.', 'ultimate-post' ); |
| 352 |
} |
| 353 |
} else { |
| 354 |
$message = __( 'Invalid license.', 'ultimate-post' ); |
| 355 |
if (!function_exists('ultimate_post_pro')) { |
| 356 |
$message = __( 'Install & Acivate PostX Pro plugin.', 'ultimate-post' ); |
| 357 |
} |
| 358 |
} |
| 359 |
return array('success' => $is_success, 'message' => $message); |
| 360 |
break; |
| 361 |
|
| 362 |
case 'action_delete': |
| 363 |
if (isset($post['ids']) && is_array($post['ids'])) { |
| 364 |
$post_ids = ultimate_post()->ultp_rest_sanitize_params($post['ids']); |
| 365 |
foreach ($post_ids as $id) { |
| 366 |
wp_delete_post( $id, true); |
| 367 |
} |
| 368 |
} |
| 369 |
return array( |
| 370 |
'success' => true, |
| 371 |
'message' => __('The selected item is deleted.', 'ultimate-post') |
| 372 |
); |
| 373 |
|
| 374 |
case 'support_data': |
| 375 |
$user_info = get_userdata( get_current_user_id() ); |
| 376 |
$name = $user_info->first_name . ($user_info->last_name ? ' ' . $user_info->last_name : ''); |
| 377 |
return array( |
| 378 |
'success' => true, |
| 379 |
'data' => array( |
| 380 |
'name' => $name ? $name : $user_info->user_login, |
| 381 |
'email' => $user_info->user_email |
| 382 |
) |
| 383 |
); |
| 384 |
|
| 385 |
case 'support_action': |
| 386 |
$api_params = array( |
| 387 |
'user_name' => isset($post['name'])? ultimate_post()->ultp_rest_sanitize_params($post['name']):'', |
| 388 |
'user_email' =>isset($post['email'])? sanitize_email($post['email']):'', |
| 389 |
'subject' => isset($post['subject'])? ultimate_post()->ultp_rest_sanitize_params($post['subject']):'', |
| 390 |
'desc' => isset($post['desc'])? sanitize_textarea_field($post['desc']):'', |
| 391 |
); |
| 392 |
$response = wp_remote_get( |
| 393 |
'https://wpxpo.com/wp-json/v2/support_mail', |
| 394 |
array( |
| 395 |
'method' => 'POST', |
| 396 |
'timeout' => 120, |
| 397 |
'body' => $api_params |
| 398 |
) |
| 399 |
); |
| 400 |
$response_data = json_decode($response['body']); |
| 401 |
$success = ( isset($response_data->success) && $response_data->success ) ? true : false; |
| 402 |
|
| 403 |
return array( |
| 404 |
'success' => $success, |
| 405 |
'message' => $success ? __('New Support Ticket has been Created.', 'ultimate-post') : __('New Support Ticket is not Created Due to Some Issues.', 'ultimate-post') |
| 406 |
); |
| 407 |
break; |
| 408 |
|
| 409 |
case 'helloBarAction': |
| 410 |
set_transient( 'ultp_helloBar'.ULTP_HELLOBAR, 'hide', 1296000); |
| 411 |
return array( |
| 412 |
'success' => true, |
| 413 |
'message' => __('Notice is removed.', 'ultimate-post') |
| 414 |
); |
| 415 |
break; |
| 416 |
case 'generalDiscountAction': |
| 417 |
set_transient( 'ultp_generalDiscount', 'hide', 60 * DAY_IN_SECONDS); |
| 418 |
return array( |
| 419 |
'success' => true, |
| 420 |
'message' => __('Notice is removed.', 'ultimate-post') |
| 421 |
); |
| 422 |
break; |
| 423 |
|
| 424 |
default: |
| 425 |
# code... |
| 426 |
break; |
| 427 |
} |
| 428 |
|
| 429 |
} |
| 430 |
|
| 431 |
/** |
| 432 |
* wizard_site_status_callback |
| 433 |
* |
| 434 |
* * @since v.3.0.0 |
| 435 |
* @return STRING |
| 436 |
*/ |
| 437 |
public static function wizard_site_status_callback() { |
| 438 |
if ( ! (isset($_POST['wpnonce']) && wp_verify_nonce( sanitize_key(wp_unslash($_POST['wpnonce'])), 'ultp-nonce' )) ) { |
| 439 |
die(); |
| 440 |
} |
| 441 |
if ( isset( $_POST['siteType'] ) ) { |
| 442 |
$site_type = ultimate_post()->ultp_rest_sanitize_params( $_POST['siteType'] ); |
| 443 |
update_option( '__ultp_site_type', $site_type ); |
| 444 |
} |
| 445 |
require_once ULTP_PATH.'classes/Deactive.php'; |
| 446 |
$obj = new \ULTP\Deactive(); |
| 447 |
$obj->send_plugin_data('postx_wizard', $site_type ? $site_type : 'other'); |
| 448 |
|
| 449 |
return rest_ensure_response( ['success' => true ]); |
| 450 |
} |
| 451 |
|
| 452 |
|
| 453 |
/** |
| 454 |
* Send Plugin Data When Initial Setup |
| 455 |
* |
| 456 |
* * @since v.2.8.1 |
| 457 |
* @return STRING |
| 458 |
*/ |
| 459 |
public function send_initial_plugin_data_callback($server) { |
| 460 |
$post = $server->get_params(); |
| 461 |
if ( ! (isset($post['wpnonce']) && wp_verify_nonce( sanitize_key(wp_unslash($post['wpnonce'])), 'ultp-nonce' )) ) { |
| 462 |
die(); |
| 463 |
} |
| 464 |
|
| 465 |
|
| 466 |
$site = isset($post['site']) ? ultimate_post()->ultp_rest_sanitize_params( $post['site'] ) : ''; |
| 467 |
|
| 468 |
require_once ULTP_PATH.'classes/Deactive.php'; |
| 469 |
$obj = new \ULTP\Deactive(); |
| 470 |
$obj->send_plugin_data('postx_wizard', $site); |
| 471 |
} |
| 472 |
|
| 473 |
/** |
| 474 |
* Initial Plugin Setup Complete |
| 475 |
* |
| 476 |
* * @since v.2.8.1 |
| 477 |
* @return STRING |
| 478 |
*/ |
| 479 |
public static function initial_setup_complete_callback($server) { |
| 480 |
$post = $server->get_params(); |
| 481 |
if ( ! (isset($post['wpnonce']) && wp_verify_nonce( sanitize_key(wp_unslash($post['wpnonce'])), 'ultp-nonce' )) ) { |
| 482 |
die(); |
| 483 |
} |
| 484 |
ultimate_post()->set_setting('init_setup', 'yes'); |
| 485 |
return rest_ensure_response([ |
| 486 |
'success' => true, |
| 487 |
'redirect' => admin_url('admin.php?page=ultp-settings#home'), |
| 488 |
]); |
| 489 |
} |
| 490 |
|
| 491 |
|
| 492 |
/** |
| 493 |
* Delete Template Page and Handle builder, saved templates, custom font actions |
| 494 |
* |
| 495 |
* @since v.2.6.6 // Shifted from RequestAPI since v4.0.3 |
| 496 |
* @param STRING |
| 497 |
* @return ARRAY | Success Message |
| 498 |
*/ |
| 499 |
public function template_page_action($server) { |
| 500 |
$post = $server->get_params(); |
| 501 |
$message = ''; |
| 502 |
$s_Type = isset($post['type']) ? ultimate_post()->ultp_rest_sanitize_params($post['type']) : ''; |
| 503 |
$s_id = isset($post['id']) ? ultimate_post()->ultp_rest_sanitize_params($post['id']) : ''; |
| 504 |
$s_status = isset($post['status']) ? ultimate_post()->ultp_rest_sanitize_params($post['status']) : ''; |
| 505 |
|
| 506 |
if ( $s_Type && $s_id ) { |
| 507 |
if ( $s_Type == 'delete' ) { |
| 508 |
if ( isset($post['section']) && $post['section'] == 'builder' ) { // phpcs:ignore WordPress.Security |
| 509 |
$conditions = get_option('ultp_builder_conditions', []); |
| 510 |
$builder_type = get_post_meta( $s_id, '__ultp_builder_type', true ); |
| 511 |
if ( isset($conditions[$builder_type][$s_id]) ) { |
| 512 |
unset($conditions[$builder_type][$s_id]); |
| 513 |
update_option('ultp_builder_conditions', $conditions); |
| 514 |
} |
| 515 |
} |
| 516 |
wp_delete_post( $s_id, true); |
| 517 |
$message = __('Template has been deleted.', 'ultimate-post'); |
| 518 |
} else if ( $s_Type == 'duplicate' ) { |
| 519 |
$fromBuilder = ( isset($post['section']) && $post['section'] == 'builder' ) ? true : false; // phpcs:ignore WordPress.Security |
| 520 |
$post_id = $s_id; |
| 521 |
$r_post = get_post( $post_id ); |
| 522 |
$current_user = wp_get_current_user(); |
| 523 |
$new_post_author = $current_user->ID; |
| 524 |
if ( isset( $r_post ) && $r_post != null ) { |
| 525 |
$args = array( |
| 526 |
'post_author' => $new_post_author, |
| 527 |
'post_content' => str_replace(['u0022', 'u002d'], ['\u0022', '\u002d'], $r_post->post_content), |
| 528 |
'post_excerpt' => $r_post->post_excerpt, |
| 529 |
'post_name' => $r_post->post_name, |
| 530 |
'post_status' => $fromBuilder ? 'draft' : $r_post->post_status, |
| 531 |
'post_title' => $r_post->post_title, |
| 532 |
'post_type' => $r_post->post_type, |
| 533 |
); |
| 534 |
} |
| 535 |
$new_post_id = wp_insert_post( $args ); |
| 536 |
|
| 537 |
$css = get_post_meta( $post_id, '_ultp_css', true ); |
| 538 |
update_post_meta( $new_post_id, '_ultp_css', $css ); |
| 539 |
update_post_meta( $new_post_id, '_ultp_active', 'yes' ); |
| 540 |
|
| 541 |
if ( $fromBuilder ) { |
| 542 |
$type = get_post_meta( $post_id, '__ultp_builder_type', true ); |
| 543 |
update_post_meta( $new_post_id, '__ultp_builder_type', $type ); |
| 544 |
|
| 545 |
$width = get_post_meta( $post_id, '__container_width', true ); |
| 546 |
update_post_meta( $new_post_id, '__container_width', $width ); |
| 547 |
|
| 548 |
$sidebar = get_post_meta( $post_id, '__builder_sidebar', true ); |
| 549 |
update_post_meta( $new_post_id, '__builder_sidebar', $sidebar ); |
| 550 |
|
| 551 |
$widget_area = get_post_meta( $post_id, '__builder_widget_area', true ); |
| 552 |
update_post_meta( $new_post_id, '__builder_widget_area', $widget_area ); |
| 553 |
|
| 554 |
$conditions = get_option('ultp_builder_conditions', array()); |
| 555 |
if ($conditions && $type) { |
| 556 |
if (isset($conditions[$type][$post_id])) { |
| 557 |
$conditions[$type][$new_post_id] = $conditions[$type][$post_id]; |
| 558 |
update_option('ultp_builder_conditions', $conditions); |
| 559 |
} |
| 560 |
} |
| 561 |
} |
| 562 |
$message = __('Template has been duplicated.', 'ultimate-post'); |
| 563 |
} else if ( $s_Type == 'status') { |
| 564 |
if ( $s_status ) { |
| 565 |
wp_update_post(array( |
| 566 |
'ID' => $s_id, |
| 567 |
'post_status' => $s_status |
| 568 |
)); |
| 569 |
} |
| 570 |
$message = __('Status has been changed.', 'ultimate-post'); |
| 571 |
} |
| 572 |
} |
| 573 |
|
| 574 |
return array( |
| 575 |
'success' => true, |
| 576 |
'message' => $message |
| 577 |
); |
| 578 |
} |
| 579 |
} |