Beispiel #1
0
 /**
  * Handle ajax process
  */
 public function on_process_ajax()
 {
     $ajax_return = array();
     $order = $_POST['order'];
     switch ($order['action']) {
         case 'clean':
         case 'wpglobus-reset':
             require_once 'admin/class-wpglobus-clean.php';
             WPGlobus_Clean::process_ajax($order);
             break;
         case 'save_post_meta_settings':
             $settings = (array) get_option(WPGlobus::Config()->option_post_meta_settings);
             if (empty($settings[$order['post_type']])) {
                 $settings[$order['post_type']] = array();
             }
             $settings[$order['post_type']][$order['meta_key']] = $order['checked'];
             if (update_option(WPGlobus::Config()->option_post_meta_settings, $settings)) {
                 $ajax_return['result'] = 'ok';
             } else {
                 $ajax_return['result'] = 'error';
             }
             $ajax_return['checked'] = $order['checked'];
             $ajax_return['id'] = $order['id'];
             $ajax_return['meta_key'] = $order['meta_key'];
             break;
         case 'wpglobus_select_lang':
             if ($order['locale'] == 'en_US') {
                 update_option('WPLANG', '');
             } else {
                 update_option('WPLANG', $order['locale']);
             }
             break;
         case 'get_titles':
             if ('taxonomy' === $order['type']) {
                 /**
                  * Remove filter to get raw term description
                  */
                 remove_filter('get_term', array('WPGlobus_Filters', 'filter__get_term'), 0);
             }
             $config = WPGlobus::Config();
             $result = array();
             $bulkedit_post_titles = array();
             /**
              * Iterate through the Titles array.
              *
              * @var  int $id Post or Term ID.
              * @var  string $title Post or Term Name.
              */
             foreach ((array) $order['title'] as $id => $title) {
                 if (!WPGlobus_Core::has_translations($title['source'])) {
                     /**
                      * In some cases, we've lost the raw data for post title on edit.php page
                      * for example product post type from Woo.
                      */
                     $_title_from_db = '';
                     if ('post' === $order['type']) {
                         $_title_from_db = get_post_field('post_title', $id);
                     } elseif ('taxonomy' === $order['type']) {
                         if ($_term_by_id = get_term_by('id', $id, $order['taxonomy'])) {
                             $_title_from_db = $_term_by_id->name;
                         }
                     }
                     if ($_title_from_db) {
                         $title['source'] = $_title_from_db;
                     }
                     unset($_term_by_id, $_title_from_db);
                 }
                 $result[$id]['source'] = $title['source'];
                 $term = null;
                 // should initialize before if because used in the next foreach
                 if ($order['type'] == 'taxonomy' && $order['taxonomy']) {
                     $term = get_term($id, $order['taxonomy']);
                     if (is_wp_error($term)) {
                         $order['taxonomy'] = false;
                     }
                 }
                 foreach ($config->enabled_languages as $language) {
                     $return = $language == $config->default_language ? WPGlobus::RETURN_IN_DEFAULT_LANGUAGE : WPGlobus::RETURN_EMPTY;
                     $result[$id][$language]['name'] = WPGlobus_Core::text_filter($title['source'], $language, $return);
                     if ($term && $order['type'] == 'taxonomy' && $order['taxonomy']) {
                         $result[$id][$language]['description'] = WPGlobus_Core::text_filter($term->description, $language, $return);
                     }
                     $bulkedit_post_titles[$id][$language]['name'] = WPGlobus_Core::text_filter($title['source'], $language, WPGlobus::RETURN_IN_DEFAULT_LANGUAGE);
                 }
             }
             $ajax_return['qedit_titles'] = $result;
             $ajax_return['bulkedit_post_titles'] = $bulkedit_post_titles;
             break;
     }
     echo json_encode($ajax_return);
     die;
 }
Beispiel #2
0
 /**
  * Handle ajax process
  */
 public function on_process_ajax()
 {
     $ajax_return = array();
     $order = $_POST['order'];
     switch ($order['action']) {
         case 'clean':
         case 'wpglobus-reset':
             require_once 'admin/class-wpglobus-clean.php';
             WPGlobus_Clean::process_ajax($order);
             break;
         case 'save_post_meta_settings':
             $settings = (array) get_option(WPGlobus::Config()->option_post_meta_settings);
             if (empty($settings[$order['post_type']])) {
                 $settings[$order['post_type']] = array();
             }
             $settings[$order['post_type']][$order['meta_key']] = $order['checked'];
             if (update_option(WPGlobus::Config()->option_post_meta_settings, $settings)) {
                 $ajax_return['result'] = 'ok';
             } else {
                 $ajax_return['result'] = 'error';
             }
             $ajax_return['checked'] = $order['checked'];
             $ajax_return['id'] = $order['id'];
             $ajax_return['meta_key'] = $order['meta_key'];
             break;
         case 'wpglobus_select_lang':
             if ($order['locale'] == 'en_US') {
                 update_option('WPLANG', '');
             } else {
                 update_option('WPLANG', $order['locale']);
             }
             break;
         case 'get_titles':
             if ($order['type'] == 'taxonomy') {
                 /**
                  * Remove filter to get raw term description
                  * @todo Need to restore?
                  */
                 remove_filter('get_term', array('WPGlobus_Filters', 'filter__get_term'), 0);
             }
             $config = WPGlobus::Config();
             $result = array();
             $bulkedit_post_titles = array();
             foreach ($order['title'] as $id => $title) {
                 $result[$id]['source'] = $title['source'];
                 $term = null;
                 // should initialize before if because used in the next foreach
                 if ($order['type'] == 'taxonomy' && $order['taxonomy']) {
                     $term = get_term($id, $order['taxonomy']);
                     if (is_wp_error($term)) {
                         $order['taxonomy'] = false;
                     }
                 }
                 foreach ($config->enabled_languages as $language) {
                     $return = $language == $config->default_language ? WPGlobus::RETURN_IN_DEFAULT_LANGUAGE : WPGlobus::RETURN_EMPTY;
                     $result[$id][$language]['name'] = WPGlobus_Core::text_filter($title['source'], $language, $return);
                     if ($term && $order['type'] == 'taxonomy' && $order['taxonomy']) {
                         $result[$id][$language]['description'] = WPGlobus_Core::text_filter($term->description, $language, $return);
                     }
                     $bulkedit_post_titles[$id][$language]['name'] = WPGlobus_Core::text_filter($title['source'], $language, WPGlobus::RETURN_IN_DEFAULT_LANGUAGE);
                 }
             }
             $ajax_return['qedit_titles'] = $result;
             $ajax_return['bulkedit_post_titles'] = $bulkedit_post_titles;
             break;
     }
     echo json_encode($ajax_return);
     die;
 }