Files
roi-theme/wp-content/plugins/wp-ultimate-csv-importer/importExtensions/YoastSeoImport.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

248 lines
11 KiB
PHP
Executable File

<?php
/******************************************************************************************
* Copyright (C) Smackcoders. - All Rights Reserved under Smackcoders Proprietary License
* Unauthorized copying of this file, via any medium is strictly prohibited
* Proprietary and confidential
* You can contact Smackcoders at email address info@smackcoders.com.
*******************************************************************************************/
namespace Smackcoders\FCSV;
if ( ! defined( 'ABSPATH' ) )
exit; // Exit if accessed directly
class YoastSeoImport {
private static $yoast_instance = null;
public static function getInstance() {
if (YoastSeoImport::$yoast_instance == null) {
YoastSeoImport::$yoast_instance = new YoastSeoImport;
return YoastSeoImport::$yoast_instance;
}
return YoastSeoImport::$yoast_instance;
}
function set_yoast_values($line_number,$header_array ,$value_array , $map, $post_id , $type, $hash_key,$gmode,$templatekey){
$post_values = [];
$helpers_instance = ImportHelpers::getInstance();
$post_values = $helpers_instance->get_header_values($map , $header_array , $value_array);
$this->yoast_import_function($line_number,$post_values,$type, $post_id, $header_array , $value_array, $hash_key,$gmode,$templatekey);
}
function yoast_import_function($line_number,$data_array, $importas, $pID, $header_array , $value_array, $hash_key,$gmode,$templatekey) {
$createdFields = $yoastData = array();
$media_instance = MediaHandling::getInstance();
foreach ($data_array as $dkey => $dvalue) {
$createdFields[] = $dkey;
}
// Import WP Yoast SEO information for Terms & Taxonomies
foreach (get_taxonomies() as $item => $taxonomy_name) {
if($taxonomy_name == $importas) {
if(isset($data_array['title'])) {
$yoastData['wpseo_title']= $data_array['title'];
}
if(isset($data_array['meta_desc'])) {
$yoastData['wpseo_desc'] = $data_array['meta_desc'];
}
if(isset($data_array['meta-robots-noindex'])) {
if($data_array['meta-robots-noindex'] == 1){
$yoastData['wpseo_noindex'] = 'noindex';
}
if($data_array['meta-robots-noindex'] == 2){
$yoastData['wpseo_noindex'] = 'index';
}
}
if(isset($data_array['meta-robots-nofollow'])) {
$yoastData['wpseo_nofollow'] = $data_array['meta-robots-nofollow'];
}
if(isset($data_array['meta-robots-adv'])) {
$yoastData['wpseo_adv'] = $data_array['meta-robots-adv'];
}
if(isset($data_array['bctitle'])) {
$yoastData['wpseo_bctitle'] = $data_array['bctitle'];
}
// if(isset($data_array['sitemap-include'])) {
// $yoastData['wpseo_sitemap_include'] = $data_array['sitemap-include'];
// }
// if(isset($data_array['sitemap-prio'])) {
// $yoastData['wpseo_sitemap_prio'] = $data_array['sitemap-prio'];
// }
if(isset($data_array['canonical'])) {
$yoastData['wpseo_canonical'] = $data_array['canonical'];
}
if(isset($data_array['redirect'])) {
$yoastData['wpseo_redirect'] = $data_array['redirect'];
}
if(isset($data_array['opengraph-title'])) {
$yoastData['wpseo_opengraph-title'] = $data_array['opengraph-title'];
}
if(isset($data_array['opengraph-description'])) {
$yoastData['wpseo_opengraph-description'] = $data_array['opengraph-description'];
}
if(isset($data_array['opengraph-image'])) {
$yoastData['wpseo_opengraph-image'] = urldecode($data_array['opengraph-image']);
$media_instance->store_image_ids($i=1);
$image_id = $media_instance->image_meta_table_entry($line_number,'', $pID, 'opengraph-image', $data_array['opengraph-image'], $hash_key, 'yoast_opengraph','post',$templatekey,$gmode);
$yoastData['wpseo_opengraph-image-id'] = $image_id;
}
if(isset($data_array['twitter-title'])) {
$yoastData['wpseo_twitter-title'] = $data_array['twitter-title'];
}
if(isset($data_array['twitter-description'])) {
$yoastData['wpseo_twitter-description'] = $data_array['twitter-description'];
}
if(isset($data_array['twitter-image'])) {
$yoastData['wpseo_twitter-image'] = urldecode($data_array['twitter-image']);
$media_instance->store_image_ids($i=1);
$imageid = $media_instance->image_meta_table_entry($line_number,'', $pID, 'twitter-image', $data_array['twitter-image'], $hash_key, 'twitter-image','post',$templatekey,$gmode);
$yoastData['wpseo_twitter-image-id'] = $imageid;
}
if(isset($data_array['google-plus-title'])) {
$yoastData['wpseo_google-plus-title'] = $data_array['google-plus-title'];
}
if(isset($data_array['google-plus-description'])) {
$yoastData['wpseo_google-plus-description'] = $data_array['google-plus-description'];
}
if(isset($data_array['google-plus-image'])) {
$yoastData['wpseo_google-plus-image'] = $data_array['google-plus-image'];
}
if(isset($data_array['cornerstone-content'])) {
$yoastData['wpseo_is_cornerstone'] = $data_array['cornerstone-content'];
}
if(isset($data_array['focus_keyword'])) {
$yoastData['wpseo_focuskw'] = $data_array['focus_keyword'];
}
if(isset($data_array['focuskeywords'])) {
$yoastData['wpseo_focuskeywords'] = $this->seo_keyphrase_entry($data_array['focuskeywords']);
}
if(isset($data_array['keywordsynonyms'])) {
$yoastData['wpseo_keywordsynonyms'] = $this->seo_synonym_entry($data_array['keywordsynonyms']);
}
$seo_yoast_cat = get_option('wpseo_taxonomy_meta');
$seo_yoast_cat[$importas][$pID] = $yoastData;
update_option('wpseo_taxonomy_meta', $seo_yoast_cat);
break;
}
}
// Import WP Yoast SEO information for Post types
if (isset($data_array['focus_keyword'])) {
$custom_array['_yoast_wpseo_focuskw'] = $data_array['focus_keyword'];
$custom_array['_yoast_wpseo_focuskw_text_input'] = $data_array['focuskeywords']; //yoast seo pro works
}
if (isset($data_array['title'])) {
$custom_array['_yoast_wpseo_title'] = $data_array['title'];
}
if (isset($data_array['meta_desc'])) {
$custom_array['_yoast_wpseo_metadesc'] = $data_array['meta_desc'];
}
if (isset($data_array['meta_keywords'])) {
$custom_array['_yoast_wpseo_metakeywords'] = $data_array['meta_keywords'];
}
if (isset($data_array['meta-robots-noindex'])) {
$custom_array['_yoast_wpseo_meta-robots-noindex'] = $data_array['meta-robots-noindex'];
}
if (isset($data_array['meta-robots-nofollow'])) {
$custom_array['_yoast_wpseo_meta-robots-nofollow'] = $data_array['meta-robots-nofollow'];
}
if (isset($data_array['meta-robots-adv'])) {
$custom_array['_yoast_wpseo_meta-robots-adv'] = $data_array['meta-robots-adv'];
}
if (isset($data_array['bctitle'])) {
$custom_array['_yoast_wpseo_bctitle'] = $data_array['bctitle'];
}
// if (isset($data_array['sitemap-include'])) {
// $custom_array['_yoast_wpseo_sitemap-include'] = $data_array['sitemap-include'];
// }
// if (isset($data_array['sitemap-prio'])) {
// $custom_array['_yoast_wpseo_sitemap-prio'] = $data_array['sitemap-prio'];
// }
if (isset($data_array['canonical'])) {
$custom_array['_yoast_wpseo_canonical'] = $data_array['canonical'];
}
if (isset($data_array['redirect'])) {
$custom_array['_yoast_wpseo_redirect'] = $data_array['redirect'];
}
if (isset($data_array['opengraph-title'])) {
$custom_array['_yoast_wpseo_opengraph-title'] = $data_array['opengraph-title'];
}
if (isset($data_array['opengraph-description'])) {
$custom_array['_yoast_wpseo_opengraph-description'] = $data_array['opengraph-description'];
}
if (isset($data_array['opengraph-image'])) {
$custom_array['_yoast_wpseo_opengraph-image'] = urldecode($data_array['opengraph-image']);
$media_instance->store_image_ids($i=1);
$image_id = $media_instance->image_meta_table_entry($line_number,'', $pID, 'opengraph-image', $data_array['opengraph-image'], $hash_key, 'yoast_opengraph','post',$templatekey,$gmode);
$custom_array['_yoast_wpseo_opengraph-image-id'] = $image_id;
}
if (isset($data_array['twitter-title'])) {
$custom_array['_yoast_wpseo_twitter-title'] = $data_array['twitter-title'];
}
if (isset($data_array['twitter-description'])) {
$custom_array['_yoast_wpseo_twitter-description'] = $data_array['twitter-description'];
}
if (isset($data_array['twitter-image'])) {
$custom_array['_yoast_wpseo_twitter-image'] = urldecode($data_array['twitter-image']);
$media_instance->store_image_ids($i=1);
$imageid = $media_instance->image_meta_table_entry($line_number,'', $pID, 'twitter-image', $data_array['twitter-image'], $hash_key, 'twitter-image','post',$templatekey,$gmode);
$custom_array['_yoast_wpseo_twitter-image-id'] = $imageid;
}
if (isset($data_array['google-plus-title'])) {
$custom_array['_yoast_wpseo_google-plus-title'] = $data_array['google-plus-title'];
}
if (isset($data_array['google-plus-description'])) {
$custom_array['_yoast_wpseo_google-plus-description'] = $data_array['google-plus-description'];
}
if (isset($data_array['google-plus-image'])) {
$custom_array['_yoast_wpseo_google-plus-image'] = $data_array['google-plus-image'];
}
if (isset($data_array['schema_page_type']) && !empty($data_array['schema_page_type'])) {
$custom_array['_yoast_wpseo_schema_page_type'] = $data_array['schema_page_type'];
}
if (isset($data_array['schema_article_type']) && !empty($data_array['schema_article_type'])) {
$custom_array['_yoast_wpseo_schema_article_type'] = $data_array['schema_article_type'];
}
if(isset($data_array['cornerstone-content']) && $data_array['cornerstone-content'] == '1') {
$custom_array['_yoast_wpseo_is_cornerstone'] = $data_array['cornerstone-content'];
}
if(isset($data_array['focuskeywords'])) {
$custom_array['_yoast_wpseo_focuskeywords'] = $this->seo_keyphrase_entry($data_array['focuskeywords']);
}
if(isset($data_array['keywordsynonyms'])) {
$custom_array['_yoast_wpseo_keywordsynonyms'] = $this->seo_synonym_entry($data_array['keywordsynonyms']);
}
if (!empty ($custom_array)) {
foreach ($custom_array as $custom_key => $custom_value) {
update_post_meta($pID, $custom_key, $custom_value);
}
}
return $createdFields;
}
public function seo_keyphrase_entry($keyphrase_value){
$exp_keywords = explode('|', $keyphrase_value);
$keyword_arr = [];
$temp = 0;
foreach($exp_keywords as $keywords){
$keyword_arr[$temp]['keyword'] = $keywords;
$keyword_arr[$temp]['score'] = "ok";
$temp++;
}
$keyword_value = json_encode($keyword_arr);
return $keyword_value;
}
public function seo_synonym_entry($synonym_value){
$exp_synonym = explode('|', $synonym_value);
array_unshift($exp_synonym,"");
$synonyms_value = json_encode($exp_synonym);
return $synonyms_value;
}
}