Changeset 3795004
- Timestamp:
- 11/10/2026 06:13:28 PM (less than one hour ago)
- Location:
- factuhub-for-woocommerce
- Files:
-
- 12 edited
- 1 copied
-
tags/0.9.7 (copied) (copied from factuhub-for-woocommerce/trunk )
-
tags/0.9.7/factuhub.php (modified) (2 diffs)
-
tags/0.9.7/includes/class-factuhub-activacion.php (modified) (1 diff)
-
tags/0.9.7/includes/class-factuhub-api.php (modified) (1 diff)
-
tags/0.9.7/includes/class-factuhub-demo.php (modified) (1 diff)
-
tags/0.9.7/includes/class-factuhub-estado-tienda.php (modified) (3 diffs)
-
tags/0.9.7/readme.txt (modified) (3 diffs)
-
trunk/factuhub.php (modified) (2 diffs)
-
trunk/includes/class-factuhub-activacion.php (modified) (1 diff)
-
trunk/includes/class-factuhub-api.php (modified) (1 diff)
-
trunk/includes/class-factuhub-demo.php (modified) (1 diff)
-
trunk/includes/class-factuhub-estado-tienda.php (modified) (3 diffs)
-
trunk/readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
factuhub-for-woocommerce/tags/0.9.7/factuhub.php
r3783257 r3795004 4 4 * Plugin URI: https://factuhub.com 5 5 * Description: Factura automáticamente los pedidos de WooCommerce en FactuHub (VERI*FACTU) y trae el catálogo, los precios y el stock desde FactuHub. 6 * Version: 0.9. 46 * Version: 0.9.7 7 7 * Requires at least: 6.5 8 8 * Requires Plugins: woocommerce … … 20 20 defined( 'ABSPATH' ) || exit; 21 21 22 define( 'FACTUHUB_VERSION', '0.9. 4' );22 define( 'FACTUHUB_VERSION', '0.9.7' ); 23 23 define( 'FACTUHUB_ARCHIVO', __FILE__ ); 24 24 define( 'FACTUHUB_DIR', plugin_dir_path( __FILE__ ) ); -
factuhub-for-woocommerce/tags/0.9.7/includes/class-factuhub-activacion.php
r3762696 r3795004 1 1 <?php 2 2 /** 3 * La conexión de cada tienda con FactuHub se activa en FactuHub ( pago único por tienda). Mientras3 * La conexión de cada tienda con FactuHub se activa en FactuHub (cuota mensual de la empresa). Mientras 4 4 * no lo está, FactuHub responde 402 «tienda_sin_activar»: se avisa al administrador y los pedidos 5 5 * esperan (se reintentan cada hora sin gastar reintentos) hasta que se active. -
factuhub-for-woocommerce/tags/0.9.7/includes/class-factuhub-api.php
r3734061 r3795004 86 86 'Accept' => 'application/json', 87 87 'User-Agent' => 'FactuHub-WooCommerce/' . FACTUHUB_VERSION . '; ' . home_url(), 88 // Identifica la tienda: su conexión se activa en FactuHub ( pago único por tienda)88 // Identifica la tienda: su conexión se activa en FactuHub (cuota mensual de la empresa) 89 89 'X-FactuHub-Tienda-Url' => untrailingslashit( set_url_scheme( home_url(), 'https' ) ), 90 90 ), -
factuhub-for-woocommerce/tags/0.9.7/includes/class-factuhub-demo.php
r3783257 r3795004 186 186 } 187 187 // Términos de atributos, categorías y marcas vacíos no estorban; las variaciones se van con su padre. 188 // Las fotos que trajo el catálogo de FactuHub (media_sideload_image) quedan sueltas al borrar el producto: fuera, 189 // salvo las que aún use otra entrada como imagen destacada 190 $en_uso = array_map( 'intval', $wpdb->get_col( "SELECT meta_value FROM {$wpdb->postmeta} WHERE meta_key = '_thumbnail_id'" ) ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery 191 foreach ( get_posts( array( 'post_type' => 'attachment', 'post_status' => 'any', 'post_parent' => 0, 'numberposts' => -1, 'fields' => 'ids', 'meta_key' => '_source_url' ) ) as $id ) { // phpcs:ignore WordPress.DB.SlowDBQuery 192 if ( ! in_array( (int) $id, $en_uso, true ) ) { 193 wp_delete_attachment( (int) $id, true ); 194 } 195 } 188 196 } 189 197 // Credenciales e integraciones que pudo dejar la demo anterior: claves de la API REST de WooCommerce, webhooks, -
factuhub-for-woocommerce/tags/0.9.7/includes/class-factuhub-estado-tienda.php
r3734061 r3795004 38 38 } 39 39 $boton = '<a class="button" href="' . esc_url( (string) $e['activar_url'] ) . '" target="_blank" rel="noopener noreferrer">' 40 /* translators: %s: precio con IVA */41 . esc_html( sprintf( __( 'Activar · %s', 'factuhub-for-woocommerce' ), html_entity_decode( wp_strip_all_tags( wc_price( (float) $e['precio_activacion'] ) ) ) ) ) . '</a>';40 /* translators: %s: precio con IVA (con «/mes» si FactuHub lo cobra al mes) */ 41 . esc_html( sprintf( __( 'Activar · %s', 'factuhub-for-woocommerce' ), html_entity_decode( wp_strip_all_tags( wc_price( (float) $e['precio_activacion'] ) ) ) . ( empty( $e['precio_periodo'] ) ? '' : '/' . $e['precio_periodo'] ) ) ) . '</a>'; 42 42 if ( 'revocada' === $e['estado'] ) { 43 43 return '<div class="notice notice-error inline"><p>' . esc_html__( 'La conexión de esta tienda está desactivada en FactuHub: no se factura ni se sincroniza nada.', 'factuhub-for-woocommerce' ) . ' ' . $boton . '</p></div>'; … … 49 49 (int) $e['dias_prueba'] 50 50 ); 51 return '<div class="notice notice-warning inline"><p>' . esc_html__( 'Tienda sin activar: funciona gratis durante la prueba de FactuHub', 'factuhub-for-woocommerce' ) . esc_html( $dias ) . '. ' . $boton . '</p></div>'; 51 // Sin botón: en la prueba FactuHub no deja activar hasta elegir plan 52 return '<div class="notice notice-info inline"><p>' . esc_html__( 'Tienda en prueba: funciona gratis durante la prueba de FactuHub', 'factuhub-for-woocommerce' ) . esc_html( $dias ) . '. ' . esc_html__( 'Cuando elijas tu plan en FactuHub podrás activarla.', 'factuhub-for-woocommerce' ) . '</p></div>'; 52 53 } 53 54 return '<div class="notice notice-error inline"><p>' . esc_html__( 'Tienda sin activar: los pedidos esperan sin facturarse y el catálogo no se sincroniza hasta que la actives.', 'factuhub-for-woocommerce' ) . ' ' . $boton . '</p></div>'; … … 56 57 public static function enlace_activar( $enlaces ) { 57 58 $e = self::obtener(); 58 if ( null !== $e && 'activa' !== $e['estado'] ) {59 if ( null !== $e && 'activa' !== $e['estado'] && empty( $e['en_prueba'] ) ) { 59 60 array_unshift( $enlaces, '<a href="' . esc_url( (string) $e['activar_url'] ) . '" target="_blank" rel="noopener noreferrer" style="font-weight:600">' . esc_html__( 'Activar en FactuHub', 'factuhub-for-woocommerce' ) . '</a>' ); 60 61 } -
factuhub-for-woocommerce/tags/0.9.7/readme.txt
r3783257 r3795004 6 6 Requires PHP: 7.4 7 7 Requires Plugins: woocommerce 8 Stable tag: 0.9. 48 Stable tag: 0.9.7 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 39 39 = Pricing = 40 40 41 The plugin is free. You need a FactuHub account with an active plan, and the connection of each store is activated in FactuHub with a one-time payment (no subscription). During FactuHub's free trial (30 days) it works without paying. While a store is not activated, its orders wait and are invoiced automatically as soon as you activate it.41 The plugin is free. You need a FactuHub account with an active plan, and the store connection is a FactuHub add-on with a monthly fee for the whole company (one store), billed with your plan. During FactuHub's free trial (30 days) it works without paying. While a store is not activated, its orders wait and are invoiced automatically as soon as you activate it. 42 42 43 43 == External services == … … 89 89 90 90 == Changelog == 91 92 = 0.9.7 = 93 * During the FactuHub trial the store notice no longer shows an "Activar" button (it can only be activated after choosing a plan). 94 95 = 0.9.6 = 96 * The store connection is now a monthly FactuHub add-on: the "Activar" button shows the price per month. 97 98 = 0.9.5 = 99 * Demo stores: resetting a demo store now also deletes the product photos that the FactuHub catalogue had downloaded (they stayed in the media library with no product). 91 100 92 101 = 0.9.4 = -
factuhub-for-woocommerce/trunk/factuhub.php
r3783257 r3795004 4 4 * Plugin URI: https://factuhub.com 5 5 * Description: Factura automáticamente los pedidos de WooCommerce en FactuHub (VERI*FACTU) y trae el catálogo, los precios y el stock desde FactuHub. 6 * Version: 0.9. 46 * Version: 0.9.7 7 7 * Requires at least: 6.5 8 8 * Requires Plugins: woocommerce … … 20 20 defined( 'ABSPATH' ) || exit; 21 21 22 define( 'FACTUHUB_VERSION', '0.9. 4' );22 define( 'FACTUHUB_VERSION', '0.9.7' ); 23 23 define( 'FACTUHUB_ARCHIVO', __FILE__ ); 24 24 define( 'FACTUHUB_DIR', plugin_dir_path( __FILE__ ) ); -
factuhub-for-woocommerce/trunk/includes/class-factuhub-activacion.php
r3762696 r3795004 1 1 <?php 2 2 /** 3 * La conexión de cada tienda con FactuHub se activa en FactuHub ( pago único por tienda). Mientras3 * La conexión de cada tienda con FactuHub se activa en FactuHub (cuota mensual de la empresa). Mientras 4 4 * no lo está, FactuHub responde 402 «tienda_sin_activar»: se avisa al administrador y los pedidos 5 5 * esperan (se reintentan cada hora sin gastar reintentos) hasta que se active. -
factuhub-for-woocommerce/trunk/includes/class-factuhub-api.php
r3734061 r3795004 86 86 'Accept' => 'application/json', 87 87 'User-Agent' => 'FactuHub-WooCommerce/' . FACTUHUB_VERSION . '; ' . home_url(), 88 // Identifica la tienda: su conexión se activa en FactuHub ( pago único por tienda)88 // Identifica la tienda: su conexión se activa en FactuHub (cuota mensual de la empresa) 89 89 'X-FactuHub-Tienda-Url' => untrailingslashit( set_url_scheme( home_url(), 'https' ) ), 90 90 ), -
factuhub-for-woocommerce/trunk/includes/class-factuhub-demo.php
r3783257 r3795004 186 186 } 187 187 // Términos de atributos, categorías y marcas vacíos no estorban; las variaciones se van con su padre. 188 // Las fotos que trajo el catálogo de FactuHub (media_sideload_image) quedan sueltas al borrar el producto: fuera, 189 // salvo las que aún use otra entrada como imagen destacada 190 $en_uso = array_map( 'intval', $wpdb->get_col( "SELECT meta_value FROM {$wpdb->postmeta} WHERE meta_key = '_thumbnail_id'" ) ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery 191 foreach ( get_posts( array( 'post_type' => 'attachment', 'post_status' => 'any', 'post_parent' => 0, 'numberposts' => -1, 'fields' => 'ids', 'meta_key' => '_source_url' ) ) as $id ) { // phpcs:ignore WordPress.DB.SlowDBQuery 192 if ( ! in_array( (int) $id, $en_uso, true ) ) { 193 wp_delete_attachment( (int) $id, true ); 194 } 195 } 188 196 } 189 197 // Credenciales e integraciones que pudo dejar la demo anterior: claves de la API REST de WooCommerce, webhooks, -
factuhub-for-woocommerce/trunk/includes/class-factuhub-estado-tienda.php
r3734061 r3795004 38 38 } 39 39 $boton = '<a class="button" href="' . esc_url( (string) $e['activar_url'] ) . '" target="_blank" rel="noopener noreferrer">' 40 /* translators: %s: precio con IVA */41 . esc_html( sprintf( __( 'Activar · %s', 'factuhub-for-woocommerce' ), html_entity_decode( wp_strip_all_tags( wc_price( (float) $e['precio_activacion'] ) ) ) ) ) . '</a>';40 /* translators: %s: precio con IVA (con «/mes» si FactuHub lo cobra al mes) */ 41 . esc_html( sprintf( __( 'Activar · %s', 'factuhub-for-woocommerce' ), html_entity_decode( wp_strip_all_tags( wc_price( (float) $e['precio_activacion'] ) ) ) . ( empty( $e['precio_periodo'] ) ? '' : '/' . $e['precio_periodo'] ) ) ) . '</a>'; 42 42 if ( 'revocada' === $e['estado'] ) { 43 43 return '<div class="notice notice-error inline"><p>' . esc_html__( 'La conexión de esta tienda está desactivada en FactuHub: no se factura ni se sincroniza nada.', 'factuhub-for-woocommerce' ) . ' ' . $boton . '</p></div>'; … … 49 49 (int) $e['dias_prueba'] 50 50 ); 51 return '<div class="notice notice-warning inline"><p>' . esc_html__( 'Tienda sin activar: funciona gratis durante la prueba de FactuHub', 'factuhub-for-woocommerce' ) . esc_html( $dias ) . '. ' . $boton . '</p></div>'; 51 // Sin botón: en la prueba FactuHub no deja activar hasta elegir plan 52 return '<div class="notice notice-info inline"><p>' . esc_html__( 'Tienda en prueba: funciona gratis durante la prueba de FactuHub', 'factuhub-for-woocommerce' ) . esc_html( $dias ) . '. ' . esc_html__( 'Cuando elijas tu plan en FactuHub podrás activarla.', 'factuhub-for-woocommerce' ) . '</p></div>'; 52 53 } 53 54 return '<div class="notice notice-error inline"><p>' . esc_html__( 'Tienda sin activar: los pedidos esperan sin facturarse y el catálogo no se sincroniza hasta que la actives.', 'factuhub-for-woocommerce' ) . ' ' . $boton . '</p></div>'; … … 56 57 public static function enlace_activar( $enlaces ) { 57 58 $e = self::obtener(); 58 if ( null !== $e && 'activa' !== $e['estado'] ) {59 if ( null !== $e && 'activa' !== $e['estado'] && empty( $e['en_prueba'] ) ) { 59 60 array_unshift( $enlaces, '<a href="' . esc_url( (string) $e['activar_url'] ) . '" target="_blank" rel="noopener noreferrer" style="font-weight:600">' . esc_html__( 'Activar en FactuHub', 'factuhub-for-woocommerce' ) . '</a>' ); 60 61 } -
factuhub-for-woocommerce/trunk/readme.txt
r3783257 r3795004 6 6 Requires PHP: 7.4 7 7 Requires Plugins: woocommerce 8 Stable tag: 0.9. 48 Stable tag: 0.9.7 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 39 39 = Pricing = 40 40 41 The plugin is free. You need a FactuHub account with an active plan, and the connection of each store is activated in FactuHub with a one-time payment (no subscription). During FactuHub's free trial (30 days) it works without paying. While a store is not activated, its orders wait and are invoiced automatically as soon as you activate it.41 The plugin is free. You need a FactuHub account with an active plan, and the store connection is a FactuHub add-on with a monthly fee for the whole company (one store), billed with your plan. During FactuHub's free trial (30 days) it works without paying. While a store is not activated, its orders wait and are invoiced automatically as soon as you activate it. 42 42 43 43 == External services == … … 89 89 90 90 == Changelog == 91 92 = 0.9.7 = 93 * During the FactuHub trial the store notice no longer shows an "Activar" button (it can only be activated after choosing a plan). 94 95 = 0.9.6 = 96 * The store connection is now a monthly FactuHub add-on: the "Activar" button shows the price per month. 97 98 = 0.9.5 = 99 * Demo stores: resetting a demo store now also deletes the product photos that the FactuHub catalogue had downloaded (they stayed in the media library with no product). 91 100 92 101 = 0.9.4 =
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)