File: /home/luxbsolr/cardsord.store/wp-content/plugins/Csv_Uploader/test_batch_validation.php
<?php
/**
* Test the batch processor validation fix
*/
// Simulate WordPress functions for testing
function __($text, $domain = '') { return $text; }
function apply_filters($hook, $value) { return $value; }
function wc_get_product_id_by_sku($sku) { return false; }
function get_option($key, $default = false) { return $default; }
function wp_cache_flush() { return true; }
function add_filter($hook, $callback) { return true; }
function remove_filter($hook, $callback) { return true; }
// Include the classes
require_once 'includes/class-fcpi-product-mapper.php';
require_once 'includes/class-fcpi-validator.php';
// Test the validation fix
echo "=== Testing Batch Processor Validation Fix ===\n\n";
// Initialize mapper and validator
$mapper = new FCPI_Product_Mapper();
$validator = new FCPI_Validator();
// Set up a mapping like the real import would
$mapper->set_mapping('Product Name', 'post_title');
$mapper->set_mapping('SKU', '_sku');
$mapper->set_mapping('Price', '_sale_price');
// Simulate CSV data
$csv_row = array(
'Product Name' => 'Test Product 123',
'SKU' => 'TEST-SKU-001',
'Price' => '29.99'
);
echo "CSV Row: " . json_encode($csv_row) . "\n\n";
// Map the data (like batch processor does)
$product_data = $mapper->map_row_data($csv_row);
echo "Mapped Product Data: " . json_encode($product_data) . "\n\n";
// Test OLD validation method (mapper's validate_mapped_data)
echo "=== OLD Validation (mapper) ===\n";
$old_validation_errors = $mapper->validate_mapped_data($product_data);
echo "Errors: " . count($old_validation_errors) . "\n";
foreach ($old_validation_errors as $error) {
echo "- ERROR: {$error}\n";
}
// Test NEW validation method (validator's validate_product)
echo "\n=== NEW Validation (validator) ===\n";
$new_validation_result = $validator->validate_product($product_data, 25);
echo "Errors: " . count($new_validation_result['errors']) . "\n";
foreach ($new_validation_result['errors'] as $error) {
echo "- ERROR: {$error}\n";
}
echo "Warnings: " . count($new_validation_result['warnings']) . "\n";
foreach ($new_validation_result['warnings'] as $warning) {
echo "- WARNING: {$warning}\n";
}
if (empty($new_validation_result['errors'])) {
echo "\n✅ SUCCESS: Batch processor validation fix is working!\n";
echo "Row 25 will now pass validation properly.\n";
} else {
echo "\n❌ FAILED: Validation still has issues.\n";
}