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>
This commit is contained in:
root
2025-11-03 21:04:30 -06:00
commit a22573bf0b
24068 changed files with 4993111 additions and 0 deletions

View File

@@ -0,0 +1,152 @@
<?php
namespace BWFAN\Exporter;
/**
* Calls base class
*/
abstract class Base {
/** Handle exporter response type */
public static $EXPORTER_ONGOING = 1;
public static $EXPORTER_SUCCESS = 2;
public static $EXPORTER_FAILED = 3;
public static $export_folder = BWFAN_SINGLE_EXPORT_DIR;
/**
* Exporter Type
*
* @var string
*/
protected $type = '';
/**
* Abstract function to process export action
*
* @param int $user_id
* @param int $export_id
*
* @return void
*/
abstract public function handle_export( $user_id, $export_id );
/**
* Save processed and count data in table
*
* @param array $extra_data (optional)
*
* @return array|int
*/
public function insert_data_in_table( $extra_data = [] ) {
if ( ! class_exists( 'BWFAN_Model_Import_Export' ) || ( ! file_exists( self::$export_folder ) && ! wp_mkdir_p( self::$export_folder ) ) ) {
return 0;
}
$file_name = $this->get_file_name();
if ( empty( $file_name ) ) {
return 0;
}
$meta = [ 'file' => $file_name ];
// Add extra data to meta
if ( ! empty( $extra_data ) ) {
$meta = array_merge( $meta, $extra_data );
}
$data = [
'offset' => 0,
'processed' => 0,
'type' => 3,
'status' => self::$EXPORTER_ONGOING,
'count' => 0,
'meta' => wp_json_encode( $meta ),
'created_date' => current_time( 'mysql', 1 ),
'last_modified' => current_time( 'mysql', 1 )
];
\BWFAN_Model_Import_Export::insert( $data );
$export_id = \BWFAN_Model_Import_Export::insert_id();
if ( empty( $export_id ) ) {
return 0;
}
return [
'id' => $export_id,
'file' => self::$export_folder . '/' . $file_name
];
}
/**
* Get total count
*
* @param array $data
*
* @return mixed
*/
public function get_total_count( $data = [] ) {
return 0;
}
/**
* Get export file name
*
* @return string
*/
public function get_file_name() {
return '';
}
/**
* Update offset and processed count
*
* @return void
*/
public function update_export_offset( $export_id, $offset, $processed, $count ) {
\BWFAN_Model_Import_Export::update( [
"offset" => $offset,
"processed" => $processed,
"count" => $count
], [ 'id' => absint( $export_id ) ] );
}
/**
* End export process
*
* @param $user_id
* @param $export_id
* @param $file_name
* @param $status
* @param $status_message
*
* @return void
*/
public function end_user_export( $user_id, $export_id, $file_name, $status, $status_message ) {
if ( empty( $status_message ) && $status === self::$EXPORTER_FAILED ) {
$status_message = __( 'Export error. Export ID: ', 'wp-marketing-automations' ) . $export_id;
}
$user_data = get_user_meta( $user_id, 'bwfan_single_export_status', true ) ?: [];
$user_data[ $this->type ] = [
'status' => $status,
'url' => self::$export_folder . '/' . $file_name,
'msg' => [ $status_message ]
];
update_user_meta( $user_id, 'bwfan_single_export_status', $user_data );
BWFAN_Core()->exporter->unschedule_export_action( [
'type' => $this->type,
'user_id' => $user_id,
'export_id' => $export_id
] );
$export_meta = [
'status_msg' => $status_message
];
\BWFAN_Model_Import_Export::update( [
'status' => $status,
'meta' => wp_json_encode( $export_meta )
], [ 'id' => absint( $export_id ) ] );
}
}