Changeset 3442806
- Timestamp:
- 01/19/2026 09:23:10 PM (2 months ago)
- Location:
- andreani-shipping/trunk
- Files:
-
- 5 edited
-
andreani.php (modified) (1 diff)
-
includes/andreani-plugin.php (modified) (10 diffs)
-
includes/api/common/andreani-api-config.php (modified) (1 diff)
-
includes/assets/js/checkout.js (modified) (1 diff)
-
includes/class-andreani-upgrader.php (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
andreani-shipping/trunk/andreani.php
r3442801 r3442806 4 4 * Plugin URI: https://wordpress.org/plugins/andreani-shipping 5 5 * Description: Plugin oficial de Andreani. Simplifica la gestión de tus envíos con Andreani. 6 * Version: 1.4.5 6 * Version: 1.4.6 7 * Requires at least: 5.8 8 * Requires PHP: 7.4 9 * WC requires at least: 5.0 10 * WC tested up to: 9.5 7 11 * Author: Andreani 8 12 * Author URI: https://www.andreani.com 9 13 * License: GPLv2 or later 10 14 * License URI: http://www.gnu.org/licenses/gpl-2.0.html 15 * Text Domain: andreani-shipping 16 * Domain Path: /languages 17 * 18 * @package AndreaniPlugin 11 19 */ 12 20 13 21 defined( 'ABSPATH' ) || exit; 14 22 15 define( 'ANDREANI_PLUGIN_FILE', __FILE__ ); 16 define( 'ANDREANI_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); 17 define( 'ANDREANI_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); 18 define( 'ANDREANI_PLUGIN_VERSION', '1.4.5' ); 19 define( 'ANDREANI_SHIPPING_METHOD_ID', 'andreani_flexipaas'); 23 if ( ! defined( 'ANDREANI_PLUGIN_FILE' ) ) { 24 define( 'ANDREANI_PLUGIN_FILE', __FILE__ ); 25 } 26 27 if ( ! defined( 'ANDREANI_PLUGIN_DIR' ) ) { 28 define( 'ANDREANI_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); 29 } 30 31 if ( ! defined( 'ANDREANI_PLUGIN_URL' ) ) { 32 define( 'ANDREANI_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); 33 } 34 35 if ( ! defined( 'ANDREANI_PLUGIN_VERSION' ) ) { 36 define( 'ANDREANI_PLUGIN_VERSION', '1.4.5' ); 37 } 38 39 if ( ! defined( 'ANDREANI_SHIPPING_METHOD_ID' ) ) { 40 define( 'ANDREANI_SHIPPING_METHOD_ID', 'andreani_flexipaas' ); 41 } 42 43 add_action( 'before_woocommerce_init', function() { 44 if ( class_exists( '\Automattic\WooCommerce\Utilities\FeaturesUtil' ) ) { 45 \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true ); 46 \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'orders_cache', __FILE__, true ); 47 } 48 } ); 20 49 21 50 require_once ANDREANI_PLUGIN_DIR . 'includes/andreani-plugin.php'; 22 51 23 add_action( 'plugins_loaded', [ Andreani_Plugin::class, 'get_instance' ] ); 24 register_activation_hook( __FILE__, [ Andreani_Plugin::class, 'activation_check' ] ); 52 add_action( 'plugins_loaded', array( 'Andreani_Plugin', 'get_instance' ), 10 ); 53 54 register_activation_hook( __FILE__, array( 'Andreani_Plugin', 'activation_check' ) ); -
andreani-shipping/trunk/includes/andreani-plugin.php
r3442801 r3442806 8 8 class Andreani_Plugin { 9 9 private static $instance = null; 10 public $version = '1.4.5';11 10 12 11 private function __construct() { … … 24 23 25 24 private function define_constants() { 26 $constants = array(27 'ANDREANI_PLUGIN_VERSION' => $this->version,28 'ANDREANI_PLUGIN_FILE' => ANDREANI_PLUGIN_DIR . 'andreani-plugin.php',29 'ANDREANI_PLUGIN_URL' => plugin_dir_url( ANDREANI_PLUGIN_FILE ),30 );31 32 foreach ( $constants as $name => $value ) {33 defined( $name ) || define( $name, $value );34 }35 25 } 36 26 … … 39 29 'includes/utils/andreani-utils.php', 40 30 'includes/class-andreani-upgrader.php', 31 'includes/services/andreani-settings-service.php', 32 'includes/services/andreani-cache-service.php', 41 33 'includes/api/andreani-api-manager.php', 42 34 'includes/checkout/andreani-checkout.php', … … 49 41 if ( file_exists( $file_path ) ) { 50 42 require_once $file_path; 43 } else { 44 error_log( sprintf( 'Andreani Plugin: No se pudo cargar el archivo %s', $file ) ); 51 45 } 52 46 } … … 65 59 if ( file_exists( $file_path ) ) { 66 60 require_once $file_path; 61 } else { 62 error_log( sprintf( 'Andreani Plugin: No se pudo cargar el archivo de admin %s', $file ) ); 67 63 } 68 64 } … … 107 103 108 104 if ( $is_frontend || $is_ajax ) { 109 Andreani_Checkout::get_instance(); 105 if ( class_exists( 'Andreani_Checkout' ) ) { 106 Andreani_Checkout::get_instance(); 107 } 110 108 } 111 109 112 110 if ( $is_frontend ) { 113 Andreani_Order::get_instance(); 111 if ( class_exists( 'Andreani_Order' ) ) { 112 Andreani_Order::get_instance(); 113 } 114 114 } 115 115 116 116 if ( $is_frontend || $is_ajax ) { 117 if ( 'yes' === Andreani_Settings_Service::get( 'cotizador_producto', 'no' ) ) { 118 Andreani_Cotizador_Widget::get_instance(); 117 if ( class_exists( 'Andreani_Settings_Service' ) && class_exists( 'Andreani_Cotizador_Widget' ) ) { 118 if ( 'yes' === Andreani_Settings_Service::get( 'cotizador_producto', 'no' ) ) { 119 Andreani_Cotizador_Widget::get_instance(); 120 } 119 121 } 120 122 } … … 126 128 } 127 129 128 Andreani_Admin_Menu::get_instance(); 129 Andreani_Order_Metabox::get_instance(); 130 Andreani_Ajax_Handler::get_instance(); 131 Andreani_Admin_Assets::get_instance(); 130 if ( class_exists( 'Andreani_Admin_Menu' ) ) { 131 Andreani_Admin_Menu::get_instance(); 132 } 133 134 if ( class_exists( 'Andreani_Order_Metabox' ) ) { 135 Andreani_Order_Metabox::get_instance(); 136 } 137 138 if ( class_exists( 'Andreani_Ajax_Handler' ) ) { 139 Andreani_Ajax_Handler::get_instance(); 140 } 141 142 if ( class_exists( 'Andreani_Admin_Assets' ) ) { 143 Andreani_Admin_Assets::get_instance(); 144 } 132 145 } 133 146 134 147 private static function is_woocommerce_active() { 135 return in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ));148 return class_exists( 'WooCommerce' ); 136 149 } 137 150 … … 203 216 204 217 if ( ! current_user_can( 'manage_woocommerce' ) ) { 205 wp_send_json_error( array( 'message' => __( 'No tienes permisos para realizar esta acción.', 'andreani-shipping' ) ) ); 218 wp_send_json_error( 219 array( 'message' => __( 'No tienes permisos para realizar esta acción.', 'andreani-shipping' ) ), 220 403 221 ); 206 222 } 207 223 … … 210 226 211 227 if ( empty( $hash_andreani ) || 'corporativo' !== $tipo_cliente ) { 212 wp_send_json_error( array( 'message' => __( 'Configuración no válida para refrescar contratos.', 'andreani-shipping' ) ) ); 228 wp_send_json_error( 229 array( 'message' => __( 'Configuración no válida para refrescar contratos.', 'andreani-shipping' ) ), 230 400 231 ); 213 232 } 214 233 … … 220 239 221 240 if ( ! $result ) { 222 wp_send_json_error( array( 'message' => __( 'Error al conectar con Andreani. Verifica tu credencial.', 'andreani-shipping' ) ) ); 241 wp_send_json_error( 242 array( 'message' => __( 'Error al conectar con Andreani. Verifica tu credencial.', 'andreani-shipping' ) ), 243 502 244 ); 223 245 } 224 246 -
andreani-shipping/trunk/includes/api/common/andreani-api-config.php
r3438834 r3442806 10 10 class Andreani_Api_Config { 11 11 private static $api_base_url = 'https://woocommerce-api-acom.andreani.com'; 12 // private static $api_base_url = 'http://host.docker.internal:5000';13 12 14 13 public static function get_api_base_url() { -
andreani-shipping/trunk/includes/assets/js/checkout.js
r3441239 r3442806 264 264 }, 265 265 266 setupPostcodeValidation() { 267 // No modificamos los campos de CP globales para evitar conflictos con otros plugins 268 // La validación de formato se hace en el backend (validate_postcode) 269 }, 266 setupPostcodeValidation() {}, 270 267 }; 271 268 -
andreani-shipping/trunk/includes/class-andreani-upgrader.php
r3442801 r3442806 2 2 /** 3 3 * Andreani Upgrader 4 * 5 * Maneja las migraciones y actualizaciones de la base de datos del plugin. 4 6 * 5 7 * @package AndreaniPlugin … … 10 12 class Andreani_Upgrader { 11 13 14 /** 15 * Opción de base de datos que almacena la versión actual del esquema. 16 */ 12 17 const DB_VERSION_OPTION = 'andreani_db_version'; 13 18 19 /** 20 * Registro de versiones y sus métodos de actualización correspondientes. 21 * 22 * @var array 23 */ 14 24 private static $upgrades = array( 15 25 '1.4.0' => 'upgrade_1_4_0', … … 17 27 ); 18 28 29 /** 30 * Ejecuta las migraciones pendientes si es necesario. 31 * 32 * Compara la versión almacenada en la base de datos con la versión actual 33 * del plugin y ejecuta las actualizaciones necesarias. 34 * 35 * @return void 36 */ 19 37 public static function maybe_upgrade() { 20 38 $db_version = get_option( self::DB_VERSION_OPTION, '0' ); … … 25 43 26 44 self::run_pending_upgrades( $db_version ); 27 update_option( self::DB_VERSION_OPTION, ANDREANI_PLUGIN_VERSION );45 update_option( self::DB_VERSION_OPTION, ANDREANI_PLUGIN_VERSION, false ); 28 46 } 29 47 48 /** 49 * Ejecuta las actualizaciones pendientes basándose en la versión actual. 50 * 51 * @param string $from_version Versión desde la cual actualizar. 52 * @return void 53 */ 30 54 private static function run_pending_upgrades( $from_version ) { 31 if ( $from_version === '0') {55 if ( '0' === $from_version ) { 32 56 return; 33 57 } … … 36 60 if ( version_compare( $from_version, $version, '<' ) && method_exists( __CLASS__, $method ) ) { 37 61 Andreani_Utils::andreani_log( "[UPGRADE] Ejecutando migración a v{$version}", 'info' ); 38 call_user_func( array( __CLASS__, $method ) ); 62 63 try { 64 call_user_func( array( __CLASS__, $method ) ); 65 Andreani_Utils::andreani_log( "[UPGRADE] Migración a v{$version} completada", 'info' ); 66 } catch ( Exception $e ) { 67 Andreani_Utils::andreani_log( "[UPGRADE] Error en migración a v{$version}: " . $e->getMessage(), 'error' ); 68 } 39 69 } 40 70 } 41 71 } 42 72 73 /** 74 * Migración a versión 1.4.0 75 * 76 * Limpia el cache legacy de información Pyme. 77 * 78 * @return void 79 */ 43 80 private static function upgrade_1_4_0() { 44 81 delete_option( 'andreani_pyme_info' ); … … 46 83 } 47 84 85 /** 86 * Migración a versión 1.4.5 87 * 88 * Migra el campo 'costo_adicional_enabled' en configuración de modos de envío. 89 * Añade el campo si no existe, basándose en si hay un costo adicional configurado. 90 * 91 * @return void 92 */ 48 93 private static function upgrade_1_4_5() { 49 94 global $wpdb; … … 90 135 } 91 136 } 137 unset( $modo_config ); 92 138 93 139 if ( $changed ) { 94 140 $settings['config_por_modo'] = wp_json_encode( $config_por_modo ); 95 update_option( $row->option_name, $settings );141 update_option( $row->option_name, $settings, false ); 96 142 $migrated_count++; 97 143 }
Note: See TracChangeset
for help on using the changeset viewer.