- 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>
266 lines
10 KiB
PHP
Executable File
266 lines
10 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 ToolsetExtension extends ExtensionHandler{
|
|
private static $instance = null;
|
|
|
|
public static function getInstance() {
|
|
|
|
if (ToolsetExtension::$instance == null) {
|
|
ToolsetExtension::$instance = new ToolsetExtension;
|
|
}
|
|
return ToolsetExtension::$instance;
|
|
}
|
|
|
|
/**
|
|
* Provides Toolset fields for specific post type
|
|
* @param string $data - selected import type
|
|
* @return array - mapping fields
|
|
*/
|
|
public function processExtension($data) {
|
|
global $wpdb;
|
|
$import_types = $data;
|
|
$import_name_type = $this->import_name_as($import_types);
|
|
$response = [];
|
|
$typesFields = array();
|
|
if($import_types == 'Users') {
|
|
$getUserMetaFields = get_option('wpcf-usermeta');
|
|
if(is_array($getUserMetaFields)) {
|
|
foreach ($getUserMetaFields as $optKey => $optVal) {
|
|
$typesFields["TYPES"][$optVal['slug']]['label'] = $optVal['name'];
|
|
$typesFields["TYPES"][$optVal['slug']]['name'] = $optVal['slug'];
|
|
}
|
|
}
|
|
} else {
|
|
$import_type = $this->import_post_types($import_name_type);
|
|
$get_groups = $wpdb->get_results($wpdb->prepare("select ID from {$wpdb->prefix}posts where post_type = %s", 'wp-types-group'));
|
|
$get_groupsc = $wpdb->get_results($wpdb->prepare("select ID from {$wpdb->prefix}posts where post_type = %s", 'wp-types-term-group'));
|
|
if(!empty($get_groupsc && ($import_name_type == 'Categories' || $import_name_type == 'Tags' || $import_name_type == 'Taxonomies'))) {
|
|
$wptermsfields = array();
|
|
$wptermsfields = get_option('wpcf-termmeta');
|
|
foreach($get_groupsc as $item => $group) {
|
|
$lastId = $group->ID;
|
|
$rule_groups = $import_type;
|
|
$rule_groups = trim($rule_groups,',');
|
|
$rules = explode(',', $rule_groups);
|
|
|
|
if(in_array($import_type, $rules)) {
|
|
$fields = get_post_meta( $lastId, '_wp_types_group_fields', true );
|
|
$group_names = get_post_meta( $lastId, '_wp_types_associated_taxonomy', false );
|
|
if(in_array($import_types , $group_names) || empty($group_names)){
|
|
$fields = trim($fields, ',');
|
|
$types_fields = explode( ',', $fields );
|
|
|
|
$count = count( $types_fields );
|
|
if ( is_array( $types_fields ) ) {
|
|
for ( $i = 0; $i < $count; $i ++ ) {
|
|
foreach($wptermsfields as $term_field_value){
|
|
$search_value = $term_field_value['slug'] ;
|
|
if(in_array($search_value , $types_fields)){
|
|
$typesFields['TYPES'][ $search_value ]['name'] = $term_field_value['slug'];
|
|
$typesFields['TYPES'][ $search_value ]['slug'] = $term_field_value['slug'];
|
|
$typesFields['TYPES'][ $search_value ]['label'] = $term_field_value['name'];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
if(!empty($get_groups && ($import_name_type !== 'Categories' && $import_name_type !== 'Tags' && $import_name_type !== 'Taxonomies'))) {
|
|
$import_type = $this->import_post_types($import_name_type);
|
|
$relation_group_name = false;
|
|
foreach($get_groups as $item => $group) {
|
|
$lastId = $group->ID;
|
|
$rule_groups = get_post_meta( $lastId, '_wp_types_group_post_types', true );
|
|
$rule_group = trim($rule_groups,',');
|
|
$rules = explode(',', $rule_group);
|
|
if($import_type == 'CustomPosts'){
|
|
$import_type = $import_types;
|
|
}
|
|
|
|
if(in_array($import_type , $rules)||in_array('all',$rules)){
|
|
|
|
$get_fields = $wpdb->get_results("SELECT post_id from {$wpdb->prefix}postmeta where meta_value = '$rule_groups' ");
|
|
foreach($get_fields as $get_id){
|
|
$ID = $get_id->post_id;
|
|
$get_status = $wpdb->get_var("SELECT post_status FROM {$wpdb->prefix}posts WHERE id = $ID");
|
|
if($get_status == 'publish'){
|
|
$fields = get_post_meta( $ID, '_wp_types_group_fields', true );
|
|
$fields = trim($fields, ',');
|
|
$types_fields = explode( ',', $fields );
|
|
$count = count( $types_fields );
|
|
$wptypesfields = get_option('wpcf-fields');
|
|
if ( is_array( $types_fields ) ) {
|
|
for ( $i = 0; $i < $count; $i ++ ) {
|
|
foreach ( $types_fields as $key => $value ) {
|
|
if(!empty($value)){
|
|
//change repeatable_group to user readable format
|
|
//$value = $this->changeRepeatableGroupName($value);
|
|
|
|
if(is_array($value)){
|
|
foreach($value as $repeat_value){
|
|
$typesFields['TYPES'][ $repeat_value ]['name'] = $repeat_value;
|
|
$typesFields['TYPES'][ $repeat_value ]['slug'] = $repeat_value;
|
|
$typesFields['TYPES'][ $repeat_value ]['label'] = $repeat_value;
|
|
}
|
|
$relation_group_name = true;
|
|
}
|
|
else{
|
|
if($wptypesfields[$value]['type'] !== 'image' && $wptypesfields[$value]['type'] !== 'file' && $wptypesfields[$value]['type'] !== 'video' && $wptypesfields[$value]['type'] !== 'post'){
|
|
$typesFields['TYPES'][ $value ]['name'] = $value;
|
|
$typesFields['TYPES'][ $value ]['slug'] = $value;
|
|
$typesFields['TYPES'][ $value ]['label'] = $value;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// if(is_plugin_active('types/wpcf.php')){
|
|
// $relationship_table_name = $wpdb->prefix . "toolset_relationships";
|
|
// $get_relationship = $wpdb->get_results( "SELECT id FROM $relationship_table_name" );
|
|
|
|
// }
|
|
// $import_type = $this->import_post_types($import_name_type);
|
|
|
|
// if($import_type == 'CustomPosts'){
|
|
// $import_type = $import_types;
|
|
// }
|
|
|
|
// if(!empty($get_relationship)){
|
|
// if($import_name_type !== 'Categories' && $import_name_type !== 'Tags' && $import_name_type !== 'Taxonomies'){
|
|
// $check_relation_id = array();
|
|
// $check_relationship = $wpdb->get_results("SELECT parent_types, child_types FROM $relationship_table_name WHERE origin = 'wizard' ");
|
|
// foreach($check_relationship as $check_relationship_values){
|
|
// $check_relation_id[] = $check_relationship_values->parent_types;
|
|
// $check_relation_id[] = $check_relationship_values->child_types;
|
|
// }
|
|
// $get_relation_types = array();
|
|
// foreach($check_relation_id as $get_relation_id){
|
|
// $get_relation_types[] = $wpdb->get_var("SELECT type FROM {$wpdb->prefix}toolset_type_sets WHERE set_id = $get_relation_id ");
|
|
// }
|
|
|
|
// $check_intermediate = $wpdb->get_results("SELECT slug, id, intermediary_type FROM $relationship_table_name where intermediary_type != '' ");
|
|
// $is_intermediate = false;
|
|
// if(!empty($check_intermediate)){
|
|
// $intermediate_rel = array();
|
|
// foreach($check_intermediate as $check_value){
|
|
// $intermediate_rel[] =$check_value->intermediary_type;
|
|
// $intermediate_fields= get_option('wpcf-listing-fields-'.$check_value->intermediary_type.'-'.$check_value->id);
|
|
// }
|
|
// if(in_array($import_types , $intermediate_rel)){
|
|
// $typesFields['TYPES']['intermediate']['label'] = 'Intermediate';
|
|
// $typesFields['TYPES']['intermediate']['name'] = 'intermediate';
|
|
// $typesFields['TYPES']['intermediate']['slug'] = 'intermediate';
|
|
|
|
// $is_intermediate = true;
|
|
// }
|
|
// }
|
|
|
|
// $is_relation = false;
|
|
// if(!$is_intermediate && in_array($import_type,$get_relation_types)){
|
|
// $typesFields['TYPES']['types_relationship']['label'] = 'Types Relationship';
|
|
// $typesFields['TYPES']['types_relationship']['name'] = 'types_relationship';
|
|
// $typesFields['TYPES']['types_relationship']['slug'] = 'types_relationship';
|
|
|
|
// $is_relation = true;
|
|
// }
|
|
|
|
// if($is_intermediate || $is_relation){
|
|
// $typesFields['TYPES']['relationship_slug']['label'] = 'Relationship Slug';
|
|
// $typesFields['TYPES']['relationship_slug']['name'] = 'relationship_slug';
|
|
// $typesFields['TYPES']['relationship_slug']['slug'] = 'relationship_slug';
|
|
// }
|
|
|
|
// if($relation_group_name){
|
|
// $typesFields['TYPES']['Parent_group']['label'] = 'Parent Group';
|
|
// $typesFields['TYPES']['Parent_group']['name'] = 'Parent_Group';
|
|
// $typesFields['TYPES']['Parent_group']['slug'] = 'Parent_Group';
|
|
// }
|
|
// }
|
|
// }
|
|
}
|
|
$tool_value = $this->convert_fields_to_array($typesFields);
|
|
if(!empty($tool_value)){
|
|
$response['types_fields'] = $tool_value;
|
|
}
|
|
|
|
// $response['types_fields'] = null;
|
|
return $response;
|
|
|
|
}
|
|
// public function changeRepeatableGroupName($value) {
|
|
// global $wpdb;
|
|
// $explode = explode('_',$value);
|
|
// if (count($explode)>1) {
|
|
// if (in_array('repeatable',$explode)) {
|
|
// $merge = [];
|
|
// $name = $wpdb->get_results("SELECT post_name FROM ".$wpdb->prefix."posts WHERE id ='{$explode[3]}'");
|
|
// $types_fields = array();
|
|
// $repeat_id = $explode[3];
|
|
// $repeat_fields = get_post_meta( $repeat_id, '_wp_types_group_fields', true );
|
|
// $repeat_field = trim($repeat_fields, ',');
|
|
// $types_fields = explode( ',', $repeat_field );
|
|
// array_push($types_fields , $name[0]->post_name);
|
|
|
|
// foreach($types_fields as $keys => $type_field_value){
|
|
// if (strpos($type_field_value, '_repeatable_group') !== false) {
|
|
// $type_fields = $this->changeRepeatableGroupName($type_field_value);
|
|
// unset($types_fields[$keys]);
|
|
// }
|
|
// }
|
|
|
|
// if(!empty($type_fields)){
|
|
// $merge = array_merge($types_fields ,$type_fields);
|
|
// }else{
|
|
// $merge = $types_fields;
|
|
// }
|
|
// return $merge;
|
|
// }else{
|
|
// return $value;
|
|
// }
|
|
// }else{
|
|
// return $value;
|
|
// }
|
|
// }
|
|
|
|
/**
|
|
* Toolset extension supported import types
|
|
* @param string $import_type - selected import type
|
|
* @return boolean
|
|
*/
|
|
public function extensionSupportedImportType($import_type ){
|
|
if(is_plugin_active('types/wpcf.php')){
|
|
if($import_type == 'nav_menu_item'){
|
|
return false;
|
|
}
|
|
|
|
$import_type = $this->import_name_as($import_type);
|
|
if($import_type == 'Posts' || $import_type == 'Pages' || $import_type == 'CustomPosts' || $import_type == 'Users' || $import_type == 'WooCommerce' || $import_type == 'Taxonomies' || $import_type == 'Categories' || $import_type == 'Tags' ) {
|
|
return true;
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
} |