Files
roi-theme/wp-content/plugins/wp-ultimate-csv-importer/importExtensions/PolylangImport.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

223 lines
9.1 KiB
PHP
Executable File

<?php
/**
* WP Ultimate CSV Importer plugin file.
*
* Copyright (C) 2010-2020, Smackcoders Inc - info@smackcoders.com
*/
namespace Smackcoders\FCSV;
if ( ! defined( 'ABSPATH' ) )
exit; // Exit if accessed directly
class PolylangImport {
private static $polylang_instance = null;
public static function getInstance() {
if (PolylangImport::$polylang_instance == null) {
PolylangImport::$polylang_instance = new PolylangImport;
return PolylangImport::$polylang_instance;
}
return PolylangImport::$polylang_instance;
}
function set_polylang_values($header_array ,$value_array , $map, $post_id , $type){
$post_values = [];
$helpers_instance = ImportHelpers::getInstance();
$post_values = $helpers_instance->get_header_values($map , $header_array , $value_array);
$this->polylang_import_function($post_values,$type, $post_id);
}
function polylang_import_function($data_array, $importas,$pId) {
global $wpdb;
$term_id = $checkid = "";
$code = trim($data_array['language_code']);
$language = $wpdb->get_results("select term_id, term_taxonomy_id, description from {$wpdb->prefix}term_taxonomy where taxonomy ='language'");
$language_id = $wpdb->get_results($wpdb->prepare("select term_taxonomy_id from {$wpdb->prefix}term_relationships WHERE object_id = %d",$pId));
$listTaxonomy = get_taxonomies();
$lang_list = pll_languages_list();
if (in_array($importas, $listTaxonomy)) {
if(empty($code) || !in_array($code,$lang_list)){
$code=pll_default_language();
}
pll_set_term_language($pId, $code);
$arr = pll_get_term_translations($pId);
$translated_titles = explode(',',$data_array['translated_taxonomy_title']);
foreach($translated_titles as $translated_title){
$translated_post_id = $wpdb->get_var("SELECT term_id FROM {$wpdb->prefix}terms WHERE name ='$translated_title'");
$get_language = pll_get_term_language($translated_post_id);
$arr[$get_language] =$translated_post_id;
pll_save_term_translations( $arr );
}
}
else{
if(empty($code) || !in_array($code,$lang_list)){
$code=pll_default_language();
}
pll_set_post_language($pId, $code);
$arr = pll_get_post_translations($pId);
$translated_titles = explode(',',$data_array['translated_post_title']);
if($importas == 'WooCommerce Product Variations'){
$translated_titles = explode('|',$data_array['translated_post_title']);
}
else{
$translated_titles = explode(',',$data_array['translated_post_title']);
}
foreach($translated_titles as $translated_title){
$translated_post_id = $wpdb->get_var("SELECT ID FROM {$wpdb->prefix}posts WHERE post_title = '$translated_title' and post_status='publish'");
if(!empty($translated_post_id)){
$get_language = pll_get_post_language($translated_post_id);
$arr[$get_language] =$translated_post_id;
pll_save_post_translations( $arr );
}
}
}
// foreach($language_id as $key=>$lang_ids){
// $taxonomy = $wpdb->get_results($wpdb->prepare("select taxonomy from {$wpdb->prefix}term_taxonomy where term_taxonomy_id = %d",$lang_ids->term_taxonomy_id));
// if(!empty($taxonomy)) {
// $language_name=$taxonomy[0];
// $lang_name=$language_name->taxonomy;
// }
// else {
// $lang_name = "";
// }
// if($lang_name == 'language'){
// $wpdb->get_results($wpdb->prepare("DELETE FROM {$wpdb->prefix}term_relationships WHERE object_id = %d and term_taxonomy_id = %d ",$pId,$lang_ids->term_taxonomy_id));
// }
// }
// foreach($language as $langkey => $langval){
// $description=unserialize($langval->description);
// $descript=explode('_',$description['locale']);
// $languages=$descript[0];
// if($languages == $code){
// $term_id=$langval->term_id;
// }
// }
// if(!empty($term_id)) {
// $wpdb->insert($wpdb->prefix.'term_relationships',array(
// 'term_taxonomy_id' => $term_id,
// 'object_id' => $pId
// ),
// array(
// '%s',
// '%s'
// )
// );
// }
// //$get_term=$wpdb->get_results($wpdb->prepare("select term_id from {$wpdb->prefix}terms where slug like %s ",'%-'.$code));
// $get_term=$wpdb->get_results($wpdb->prepare("select term_id from {$wpdb->prefix}terms where slug like %s ",$code));
// foreach($get_term as $keys =>$values){
// $id = $values->term_id;
// $wpdb->insert($wpdb->prefix.'term_relationships',array(
// 'term_taxonomy_id' => $id,
// 'object_id' => $pId
// ),
// array(
// '%s',
// '%s'
// )
// );
// }
// if($data_array['language_code']){
// $translatepost=isset($data_array['translated_post_title']) ? $data_array['translated_post_title'] : "";
// $child=$wpdb->get_results($wpdb->prepare("select ID from {$wpdb->prefix}posts where post_title = %s and post_status != %s order by ID desc",$translatepost,'trash'));
// $result_of_check = $wpdb->get_results("select description,term_id from {$wpdb->prefix}term_taxonomy where taxonomy='post_translations' ");
// $array=json_decode(json_encode($result_of_check),true);
// $trans_post_id = !empty($child) ? $child[0]->ID : "";
// $languageid = $wpdb->get_results($wpdb->prepare("select term_id from {$wpdb->prefix}terms where slug= %s",$code));
// $lang_id = !empty($languageid) ? $languageid[0]->term_id : "";
// if(!empty($lang_id)) {
// $langcount = $wpdb->get_results($wpdb->prepare("select count from {$wpdb->prefix}term_taxonomy where term_id= %d",$lang_id));
// $termcount=$langcount[0]->count;
// $termcount = $termcount + 1;
// $wpdb->update( $wpdb->term_taxonomy , array( 'count' => $termcount ) , array( 'term_id' => $lang_id ) );
// }
// foreach($array as $res_key => $res_val){
// $get_term_id = $array[$res_key]['term_id'];
// $description = unserialize($array[$res_key]['description']);
// $values = is_array($description)? array_values($description): array();
// if(is_array($values)){
// if (!empty($trans_post_id) && in_array($trans_post_id,$values)) {
// $checkid = $get_term_id;
// }
// }
// }
// if($checkid){
// $language=$wpdb->get_results("select term_id,description from {$wpdb->prefix}term_taxonomy where taxonomy ='language'");
// $wpdb->insert($wpdb->prefix.'term_relationships',array(
// 'term_taxonomy_id' => $checkid,
// 'object_id' => $pId
// ),
// array(
// '%s',
// '%s'
// )
// );
// $result=$wpdb->get_results($wpdb->prepare("select description from {$wpdb->prefix}term_taxonomy where term_id = %d",$checkid));
// $description=unserialize($result[0]->description);
// foreach($description as $desckey =>$descval){
// //insert with update
// $array2= array($code => $pId);
// $descript=array_merge($description,$array2);
// $count = count($descript);
// $description_data = serialize($descript);
// $wpdb->update( $wpdb->term_taxonomy , array( 'description' => $description_data ) , array( 'term_id' => $checkid ) );
// $wpdb->update( $wpdb->term_taxonomy , array( 'count' => $count ) , array( 'term_id' => $checkid ) );
// }
// }
// else{
// global $wpdb;
// $term_name=uniqid('pll_');
// $terms=wp_insert_term($term_name,'post_translations');
// $term_id=$terms['term_id'];
// $term_tax_id=$terms['term_taxonomy_id'];
// $language=$wpdb->get_results("select term_id,description from {$wpdb->prefix}term_taxonomy where taxonomy ='language'");
// $wpdb->insert($wpdb->prefix.'term_relationships',array(
// 'term_taxonomy_id' => $term_tax_id,
// 'object_id' => $pId
// ),
// array(
// '%s',
// '%s'
// )
// );
// $taxonomyid = $wpdb->get_results($wpdb->prepare("select term_taxonomy_id from {$wpdb->prefix}term_relationships where object_id = %d",$trans_post_id));
// foreach($taxonomyid as $key => $taxo_id){
// $tid = $taxo_id->term_taxonomy_id;
// $get_details = $wpdb->get_results($wpdb->prepare("select description,taxonomy from {$wpdb->prefix}term_taxonomy where term_taxonomy_id = %d",$tid));
// if(!empty($get_details) && $get_details[0]->taxonomy == 'language'){
// $description=unserialize($get_details[0]->description);
// $descript=explode('_',$description['locale']);
// $language = array_key_exists(0,$descript) ? $descript[0] : "";
// if(!empty($language)) {
// $array = array($language => $trans_post_id);
// $post_description=array_merge($array,array($code => $pId));
// $count=count($post_description);
// $description_data=serialize($post_description);
// $wpdb->update( $wpdb->term_taxonomy , array( 'description' => $description_data ) , array( 'term_id' => $term_id ) );
// $wpdb->update( $wpdb->term_taxonomy , array( 'count' => $count ) , array( 'term_id' => $term_id ) );
// }
// }
// }
// }
// }
}
}