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

285 lines
13 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 CustomerReviewsImport {
private static $customer_reviews_instance = null;
public static function getInstance() {
if (CustomerReviewsImport::$customer_reviews_instance == null) {
CustomerReviewsImport::$customer_reviews_instance = new CustomerReviewsImport;
return CustomerReviewsImport::$customer_reviews_instance;
}
return CustomerReviewsImport::$customer_reviews_instance;
}
public function customer_reviews_import($data_array, $mode , $unikey_value = null,$unikey_name = null , $line_number = null) {
global $wpdb;
$mapping_instance = MappingExtension::getInstance();
$helpers_instance = ImportHelpers::getInstance();
$core_instance = CoreFieldsImport::getInstance();
global $core_instance;
$log_table_name = $wpdb->prefix ."import_detail_log";
$reviewId = '';
$returnArray = array('MODE' => $mode);
$mode_of_affect = 'Inserted';
$update_review_info = false;
if(isset($data_array['review_format'])) {
if(!array_key_exists('review_format', $data_array) && !isset($data_array['review_format']) && !empty($data_array['review_format'])) {
$reviewFormat = 'business';
} else {
$reviewFormat = strtolower($data_array['review_format']);
}
}
$post_id = $data_array['review_post'];
$post_exists = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}posts WHERE id = '" . $post_id . "' and post_status in ('publish','draft','future','private','pending')", 'ARRAY_A');
$get_available_plugin_lists = $mapping_instance->get_active_plugins();
$updated_row_counts = $helpers_instance->update_count($unikey_value,$unikey_name);
$created_count = $updated_row_counts['created'];
$updated_count = $updated_row_counts['updated'];
$skipped_count = $updated_row_counts['skipped'];
if($mode == 'Insert') {
if ($post_exists) {
update_post_meta($post_id, 'wpcr3_enable', 1);
update_post_meta($post_id, 'wpcr3_format', $reviewFormat);
if(in_array('wp-customer-reviews/wp-customer-reviews-3.php', $get_available_plugin_lists)) {
$review_date = current_time('mysql', 0);
if(isset($data_array['date_time'])) {
$review_date = date( 'Y-m-d H:i:s', strtotime( $data_array['date_time'] ) );
}
$review_title = $data_array['review_name'];
$review_slug = preg_replace('/[^a-zA-Z0-9._\-\s]/', '', $review_title);
$review_slug = wp_unique_filename('', $review_slug);
if(isset($data_array['status'])) {
$data_array['status'] = strtolower( $data_array['status'] );
}
if ($data_array['status'] != 'publish' && $data_array['status'] != 'private' && $data_array['status'] != 'draft' && $data_array['status'] != 'pending' && $data_array['status'] != 'sticky') {
$data_array ['post_password'] = '';
$stripPSF = strpos($data_array['status'], '{');
if ($stripPSF === 0) {
$poststatus = substr($data_array['status'], 1);
$stripPSL = substr($poststatus, -1);
if ($stripPSL == '}') {
$postpwd = substr($poststatus, 0, -1);
$data_array['status'] = 'publish';
$data_array ['post_password'] = $postpwd;
} else {
$data_array['status'] = 'publish';
$data_array ['post_password'] = $poststatus;
}
} else {
$data_array['status'] = 'publish';
}
}
$review_array = array(
'post_author' => '1',
'post_date' => $review_date,
'post_content' => $data_array['review_text'],
'post_title' => $review_title,
'post_status' => $data_array['status'],
'comment_status' => 'closed',
'ping_status' => 'closed',
'post_password' => $data_array['post_password'],
'post_name' => $review_slug,
'post_parent' => 0,
'post_type' => 'wpcr3_review',
);
$reviewId = wp_insert_post($review_array);
if(is_wp_error($reviewId)) {
$core_instance->detailed_log[$line_number]['Message'] = "Can't insert this Review. " . $reviewId->get_error_message();
$fields = $wpdb->get_results("UPDATE $log_table_name SET skipped = $skipped_count WHERE $unikey_name = '$unikey_value'");
return $returnArray;
}
$guId = site_url() . '/?post_type=wpcr3_review&#038;p=' . $reviewId;
wp_update_post(array('ID' => $reviewId, 'guid' => $guId));
// Review meta information
$review_meta_data = array(
'wpcr3_review_ip' => $data_array['review_ip'],
'wpcr3_review_post' => $data_array['review_post'],
'wpcr3_review_name' => $data_array['review_name'],
'wpcr3_review_email' => $data_array['review_email'],
'wpcr3_review_rating' => $data_array['review_rating'],
'wpcr3_review_title' => $data_array['review_title'],
'wpcr3_review_website' => $data_array['review_website'],
'wpcr3_review_admin_response' => $data_array['review_admin_response'],
'wpcr3_f1' => $data_array['custom_field1'],
'wpcr3_f2' => $data_array['custom_field2'],
'wpcr3_f3' => $data_array['custom_field3'],
);
foreach($review_meta_data as $metaKey => $metaValue) {
update_post_meta($reviewId, $metaKey, $metaValue);
}
} else {
$wpdb->insert($wpdb->wpcreviews, array('date_time' => $data_array['date_time'], 'review_name' => $data_array['review_name'], 'review_email' => $data_array['review_email'], 'review_ip' => $data_array['reviewer_ip'], 'review_title' => $data_array['review_title'], 'review_text' => $data_array['review_text'], 'review_admin_response' => $data_array['review_admin_response
'], 'status' => $data_array['status'], 'review_rating' => $data_array['review_rating'], 'review_website' => $data_array['review_website'], 'page_id' => $data_array['review_post']));
$reviewId = $wpdb->insert_id;
if(is_wp_error($reviewId)) {
$core_instance->detailed_log[$line_number]['Message'] = "Can't insert this Review. " . $reviewId->get_error_message();
$fields = $wpdb->get_results("UPDATE $log_table_name SET skipped = $skipped_count WHERE $unikey_name = '$unikey_value'");
return $returnArray;
}
}
$mode_of_affect = 'Inserted';
$core_instance->detailed_log[$line_number]['Message'] = 'Inserted Review ID: ' . $reviewId;
$fields = $wpdb->get_results("UPDATE $log_table_name SET created = $created_count WHERE $unikey_name = '$unikey_value'");
}
} else {
if($post_exists) {
if($mode == 'Update') {
update_post_meta($post_id, 'wpcr3_enable', 1);
update_post_meta($post_id, 'wpcr3_format', $reviewFormat);
if(in_array('wp-customer-reviews/wp-customer-reviews-3.php', $get_available_plugin_lists)) {
$query = "select *from {$wpdb->prefix}posts where ID = '{$data_array['review_id']}' and post_type = 'wpcr3_review'";
$id_results = $wpdb->get_results($query);
$reviewId = $id_results[0]->ID;
$review_date = current_time('mysql', 0);
if(isset($data_array['date_time'])) {
$review_date = date( 'Y-m-d H:i:s', strtotime( $data_array['date_time'] ) );
}
$review_title = $data_array['review_name'];
$review_slug = preg_replace('/[^a-zA-Z0-9._\-\s]/', '', $review_title);
$review_slug = wp_unique_filename('', $review_slug);
if(isset($data_array['status'])) {
$data_array['status'] = strtolower( $data_array['status'] );
}
if ($data_array['status'] != 'publish' && $data_array['status'] != 'private' && $data_array['status'] != 'draft' && $data_array['status'] != 'pending' && $data_array['status'] != 'sticky') {
$stripPSF = strpos($data_array['status'], '{');
if ($stripPSF === 0) {
$poststatus = substr($data_array['status'], 1);
$stripPSL = substr($poststatus, -1);
if ($stripPSL == '}') {
$postpwd = substr($poststatus, 0, -1);
$data_array['status'] = 'publish';
$data_array ['post_password'] = $postpwd;
} else {
$data_array['status'] = 'publish';
$data_array ['post_password'] = $poststatus;
}
} else {
$data_array['status'] = 'publish';
}
}
$review_array = array(
'post_author' => '1',
'post_date' => $review_date,
'post_content' => $data_array['review_text'],
'post_title' => $review_title,
'post_status' => $data_array['status'],
'comment_status' => 'closed',
'ping_status' => 'closed',
'post_password' => $data_array['post_password'],
'post_name' => $review_slug,
'post_parent' => 0,
'post_type' => 'wpcr3_review',
);
if ( $reviewId == null ) {
$reviewId = wp_insert_post($review_array);
if(is_wp_error($reviewId)) {
$core_instance->detailed_log[$line_number]['Message'] = "Can't insert this Review. " . $reviewId->get_error_message();
$fields = $wpdb->get_results("UPDATE $log_table_name SET skipped = $skipped_count WHERE $unikey_name = '$unikey_value'");
return $returnArray;
}
$mode_of_affect = 'Inserted';
$core_instance->detailed_log[$line_number]['Message'] = 'Inserted Review ID: ' . $reviewId;
$fields = $wpdb->get_results("UPDATE $log_table_name SET created = $created_count WHERE $unikey_name = '$unikey_value'");
} else {
$review_array['ID'] = $reviewId;
wp_update_post($review_array);
$mode_of_affect = 'Updated';
$core_instance->detailed_log[$line_number]['Message'] = 'Updated Review ID: ' . $reviewId;
$fields = $wpdb->get_results("UPDATE $log_table_name SET updated = $updated_count WHERE $unikey_name = '$unikey_value'");
}
$guId = site_url() . '/?post_type=wpcr3_review&#038;p=' . $reviewId;
wp_update_post(array('ID' => $reviewId, 'guid' => $guId));
// Review meta information
$review_meta_data = array(
'wpcr3_review_ip' => $data_array['review_ip'],
'wpcr3_review_post' => $data_array['review_post'],
'wpcr3_review_name' => $data_array['review_name'],
'wpcr3_review_email' => $data_array['review_email'],
'wpcr3_review_rating' => $data_array['review_rating'],
'wpcr3_review_title' => $data_array['review_title'],
'wpcr3_review_website' => $data_array['review_website'],
'wpcr3_review_admin_response' => $data_array['review_admin_response'],
'wpcr3_f1' => $data_array['custom_field1'],
'wpcr3_f2' => $data_array['custom_field2'],
'wpcr3_f3' => $data_array['custom_field3'],
);
foreach($review_meta_data as $metaKey => $metaValue) {
update_post_meta($reviewId, $metaKey, $metaValue);
}
} else {
$query = "select id from $wpdb->wpcreviews where (review_title = '{$data_array['review_title']}') and (page_id = '{$data_array['review_post']}') ";
$id_results = $wpdb->get_results( $query );
$reviewId = $id_results[0]->id;
if ( $reviewId == null ) {
$wpdb->insert( $wpdb->wpcreviews, array(
'date_time' => $data_array['date_time'],
'review_name' => $data_array['review_name'],
'review_email' => $data_array['review_email'],
'review_ip' => $data_array['review_ip'],
'review_title' => $data_array['review_title'],
'review_text' => $data_array['review_text'],
'review_admin_response' => $data_array['review_admin_response'],
'status' => $data_array['status'],
'review_rating' => $data_array['review_rating'],
'review_website' => $data_array['review_website'],
'page_id' => $data_array['review_post']
) );
$reviewId = $wpdb->insert_id;
$mode_of_affect = 'Inserted';
$core_instance->detailed_log[$line_number]['Message'] = 'Inserted Review ID: ' . $reviewId;
$fields = $wpdb->get_results("UPDATE $log_table_name SET created = $created_count WHERE $unikey_name = '$unikey_value'");
} else {
$wpdb->update( $wpdb->wpcreviews, array(
'date_time' => $data_array['date_time'],
'review_name' => $data_array['review_name'],
'id' => $reviewId,
'review_email' => $data_array['review_email'],
'review_ip' => $data_array['review_ip'],
'review_title' => $data_array['review_title'],
'review_text' => $data_array['review_text'],
'review_admin_response' => $data_array['review_admin_response'],
'status' => $data_array['status'],
'review_rating' => $data_array['review_rating'],
'review_website' => $data_array['review_website'],
'page_id' => $data_array['review_post']
) );
$mode_of_affect = 'Updated';
$core_instance->detailed_log[$line_number]['Message'] = 'Updated Review ID: ' . $reviewId;
$fields = $wpdb->get_results("UPDATE $log_table_name SET updated = $updated_count WHERE $unikey_name = '$unikey_value'");
}
}
}
}
}
return array('ID' => $reviewId, 'MODE' => $mode_of_affect);
}
}