Advertisement
qlstudio

post-types-order + polylang

May 22nd, 2014
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.48 KB | None | 0 0
  1. function saveAjaxOrder()
  2.             {
  3.                
  4.                 global $wpdb;
  5.                 global $polylang;
  6.                  
  7.                 // get current language ##
  8.                 $pll_current_language = function_exists('pll_current_language') ? pll_current_language() : 'en' ;
  9.                 #echo 'Language: '.$pll_current_language.'<br /><br />';
  10.                
  11.                 // get all available languages ##
  12.                 if ( isset ( $polylang ) ) {
  13.                    
  14.                     $pll_languages_list = $polylang->get_languages_list( array( 'fields' => 'slug' ) );
  15.                    
  16.                 } else {
  17.                    
  18.                     $pll_languages_list = array ( 0 => 'en' );
  19.                    
  20.                 }
  21.                
  22.                 #var_export( $pll_languages_list ); echo '<br /><br />';
  23.                
  24.                 // parge args ##
  25.                 parse_str( $_POST['order'], $data );
  26.                
  27.                 if ( is_array( $data ) )
  28.                 {
  29.                     foreach( $data as $key => $values )
  30.                     {
  31.                         if ( $key == 'item' )
  32.                         {
  33.                             foreach( $values as $position => $id )
  34.                             {
  35.                                
  36.                                 #echo 'ITEM / ID: '.$id.' / '.$position.' / ';
  37.                                #$wpdb->update( $wpdb->posts, array('menu_order' => $position, 'post_parent' => 0), array('ID' => $id) );
  38.  
  39.                                 // get item language, if different from current language, skip ##
  40.                                 foreach ( $pll_languages_list as $data => $value ) {
  41.  
  42.                                     if ( function_exists( 'pll_get_post' ) ) {
  43.  
  44.                                         $partner_id = pll_get_post( $id, $value );
  45.                                        
  46.                                         #echo 'LAN '.$polylang->get_post_language( $partner_id )->slug.' / ';
  47.                                        
  48.                                         if ( $partner_id ) {
  49.                                            
  50.                                             #echo 'ITEM / ID: '.$partner_id.' / '.$position.'<br />';
  51.                                            $wpdb->update( $wpdb->posts, array('menu_order' => $position, 'post_parent' => 0), array('ID' => $partner_id) );
  52.                                            
  53.                                         }
  54.                                        
  55.                                     } else {
  56.                                        
  57.                                         $wpdb->update( $wpdb->posts, array('menu_order' => $position, 'post_parent' => 0), array( 'ID' => $id ) );
  58.                                        
  59.                                     }
  60.  
  61.                                 }
  62.                                 #echo '<br /><br />';
  63.                            }
  64.                         } else {
  65.                             foreach( $values as $position => $id )
  66.                             {
  67.                                 #echo 'ITEM / ID: '.$id.' / '.$position.', ';
  68.                                $wpdb->update( $wpdb->posts, array('menu_order' => $position, 'post_parent' => str_replace('item_', '', $key)), array('ID' => $id) );
  69.                             }
  70.                         }
  71.                     }
  72.                 }
  73.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement