Changeset 3451316
- Timestamp:
- 02/01/2026 10:37:48 AM (3 weeks ago)
- Location:
- wp-facturaone/trunk
- Files:
-
- 4 edited
-
FONE_custom_products.php (modified) (1 diff)
-
ajax.php (modified) (1 diff)
-
update_productos.php (modified) (3 diffs)
-
wp-facturaone.php (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wp-facturaone/trunk/FONE_custom_products.php
r3439531 r3451316 485 485 if(strtolower($menu->slug) !== strtolower(get_option('FacturaONE_dynamicmenu')) || $menu_items=='' || ( is_admin() ) ) return $items; return $menu_items; 486 486 } 487 function FONE_addclass_dynamicmenu( $nav_menu, $args ) 487 // function FONE_addclass_dynamicmenu_old( $nav_menu, $args ) 488 // { 489 // if( strtolower(get_option('FacturaONE_dynamicmenu')) === $args->menu->slug ){ 490 // $nav_menu = str_replace("nav-dropdown","nav-dropdown fone-sub-menu-columns fone-sub-menu",$nav_menu); 491 // } 492 // return $nav_menu; 493 // } 494 function FONE_addclass_dynamicmenu($nav_menu, $args) 488 495 { 489 if( strtolower(get_option('FacturaONE_dynamicmenu')) === $args->menu->slug ){ 490 $nav_menu = str_replace("nav-dropdown","nav-dropdown fone-sub-menu-columns fone-sub-menu",$nav_menu); 491 } 496 $opt = strtolower((string) get_option('FacturaONE_dynamicmenu')); 497 if ($opt === '') return $nav_menu; 498 499 $menu = $args->menu ?? null; 500 501 // Resolver slug sin warnings 502 $slug = is_object($menu) ? ($menu->slug ?? '') : 503 (is_numeric($menu) ? (get_term((int)$menu, 'nav_menu')->slug ?? '') : 504 (is_string($menu) ? $menu : '')); 505 506 if (strtolower($slug) === $opt) { 507 $nav_menu = str_replace( 508 'nav-dropdown', 509 'nav-dropdown fone-sub-menu-columns fone-sub-menu', 510 $nav_menu 511 ); 512 } 513 492 514 return $nav_menu; 493 515 } -
wp-facturaone/trunk/ajax.php
r3451130 r3451316 76 76 if ($backgroundtask!='' && $backgroundid!='') { 77 77 update_option('_facturaone_job_last_run_' . (int)$backgroundid, time()); 78 78 79 79 // Habilita ejecución prolongada y evita abortos de conexión 80 80 ignore_user_abort(true); 81 set_time_limit(0); 81 // intenta subir el límite real (más compatible que set_time_limit(0) en algunos hostings) 82 @ini_set('max_execution_time', '300'); 83 @set_time_limit(300); // valor seguro 84 @set_time_limit(0); // si se permite, lo quita; si no, no toca el anterior 82 85 83 86 $status_value = get_option('_facturaone_status_value'); -
wp-facturaone/trunk/update_productos.php
r3451081 r3451316 236 236 237 237 FONE_subeproducto($baseurlfact, true, $jugadorC['item_lookup_id'],$jugadorC['item_name'],$jugadorC['item_description'],$jugadorC['item_description_web'],$jugadorC['urlimage'],$item_price,$jugadorC['item_price'],$jugadorC['item_tarifa2'],$jugadorC['item_tarifa3'],$jugadorC['item_tarifa4'],$jugadorC['item_tarifa5'],$jugadorC['item_kgs_neto'],$jugadorC['item_kgs_bruto'],$jugadorC['familia_id'],$jugadorC['subfamilia_id'],$jugadorC['item_activado'],$jugadorC['tax_rate_id'],$jugadorC['variaciones'],$jugadorC['compuestos'], $jugadorC['item_txt_alternativo'],$jugadorC['marca'],$jugadorC['ean'],$jugadorC['item_clientid'],$jugadorC['item_onorder'],$jugadorC['item_wp_stock_control'],$jugadorC['item_wp_stock_visible'],$jugadorC['item_seo_fraseobjetivo'],$jugadorC['item_seo_metadescripcion'],$jugadorC['item_wp_visibilidad'],$jugadorC['item_wp_destacado'],$jugadorC['item_slug'],$jugadorC['item_description_web_corta'],$jugadorC['item_wp_backorders'],$jugadorC['item_categorias'],$jugadorC['item_sku'],$jugadorC['familia_web_activate'],$jugadorC['marca_web_activate'],$jugadorC['largo'],$jugadorC['ancho'], $jugadorC['alto'], $jugadorC['item_minquantity'], $jugadorC['item_maxquantity'] ,$jugadorC['item_stepquantity'],$jugadorC['item_stock'] ); 238 239 $urlimage = $jugadorC['urlimage'];240 $item_name = $jugadorC['item_name'];241 $item_txt_alternativo = $jugadorC['item_txt_alternativo'];242 FONE_subeimagen($baseurlfact,$item_lookup_id,$urlimage,$item_name,$item_txt_alternativo,false,true);243 238 } 244 239 } … … 246 241 foreach ($jugadorB as $posicionC=>$jugadorC) 247 242 { 248 $pic_urlimage_variacion=trim( base64_decode($jugadorC['image']));249 if ($pic_urlimage_variacion!='' && $pic_urlimage_variacion!=$urlimage){243 $pic_urlimage_variacion=trim($jugadorC['urlimage']); 244 if ($pic_urlimage_variacion!=''){ 250 245 $hijo_item_lookup_id=$jugadorC['item_lookup_id']; 251 246 $pic_item_name_variacion=$jugadorC['item_name']; … … 254 249 } 255 250 } 256 } 251 } 252 if ($posicionB=='q4'){ 253 //se carga la imagen del producto despues de variaciones (porque variaciones borra origen) 254 foreach ($jugadorB as $posicionC=>$jugadorC) 255 { 256 $urlimage=trim($jugadorC['urlimage']); 257 if ($urlimage!=''){ 258 $item_lookup_id = $jugadorC['item_lookup_id']; 259 $item_name = $jugadorC['item_name']; 260 $item_txt_alternativo = $jugadorC['item_txt_alternativo']; 261 FONE_subeimagen($baseurlfact,$item_lookup_id,$urlimage,$item_name,$item_txt_alternativo,false,false); 262 } 263 } 264 } 257 265 } 258 266 } -
wp-facturaone/trunk/wp-facturaone.php
r3451130 r3451316 4 4 Plugin URI: https://www.facturaone.com/ 5 5 Description: La forma más fácil de trabajar con tu tienda online desde nuestro ERP FacturaONE. 6 Version: 4.8 26 Version: 4.83 7 7 Author: FacturaONE 8 8 Author URI: https://www.facturaone.com/ … … 1704 1704 update_option('FacturaONE_userdb', $userdb); 1705 1705 } 1706 $urlssl = (get_option('FacturaONE_conexionSSL') == '1') ? 'https' : 'http';1707 1706 $userdb = (int)$userdb; 1708 1707 $token = FONE_get_externalpics_token($userdb); 1709 1708 $fileurl = ''; 1710 1709 if ($token !== '') { 1711 $fileurl = $urlssl.'://app.ifactura.es/externalpics/index.php'1710 $fileurl = 'https://app.ifactura.es/externalpics/index.php' 1712 1711 .'?i='.(int)$item_lookup_id 1713 1712 .'&d='.(int)$userdb 1714 1713 .'&f=1&s='.$token 1715 1714 .'&time='.time(); 1716 if (preg_match('~^https?://~i', $urlimage)) {1717 // URL externa: fuerza descarga/actualiza cache en el ERP y devuelve FULL1718 $fileurl .= '&n='.base64_encode($urlimage);1719 }1720 1715 if (trim($item_txt_alternativo) == '') { 1721 1716 $item_txt_alternativo = str_replace(['_','-'], ' ', $item_name); … … 1765 1760 } 1766 1761 1767 $urlssl = (get_option('FacturaONE_conexionSSL') == '1') ? 'https' : 'http';1768 1762 $userdb_int = (int)$userdb; 1769 1763 … … 1772 1766 1773 1767 // URL nueva (index.php protegido por token) 1774 $fileurl = $urlssl.'://app.ifactura.es/externalpics/index.php'1768 $fileurl = 'https://app.ifactura.es/externalpics/index.php' 1775 1769 .'?i='.(int)$hijo_item_lookup_id 1776 1770 .'&d='.(int)$userdb_int 1777 1771 .'&f=1&s='.$token 1778 1772 .'&time='.time(); 1779 // Si es URL externa, forzamos descarga/cache en el ERP1780 if (preg_match('~^https?://~i', $urlimage)) {1781 $fileurl .= '&n=' . base64_encode($urlimage);1782 }1783 1784 1773 if (trim((string)$pic_item_txt_alternativo_variacion) === '') { 1785 1774 $pic_item_txt_alternativo_variacion = str_replace(['_','-'], ' ', (string)$pic_item_name_variacion); … … 1798 1787 } 1799 1788 function FONE_uploadMedia($image_url,$post_id,$item_name,$item_lookup_id,$item_txt_alternativo, $sobreescribe=false){ 1789 @set_time_limit(300); 1790 @ini_set('max_execution_time', '300'); 1791 1800 1792 require_once(ABSPATH . 'wp-admin/includes/media.php'); 1801 1793 require_once(ABSPATH . 'wp-admin/includes/file.php'); 1802 1794 require_once(ABSPATH . 'wp-admin/includes/image.php'); 1795 1796 $post_id = (int)$post_id; 1797 $image_url = trim((string)$image_url); 1798 1799 if ($post_id <= 0 || $image_url === '') { 1800 return 0; 1801 } 1802 1803 // 1) Si NO es sobrescritura y ya hay imagen asignada, no hacemos nada 1804 if ($sobreescribe === false) { 1805 // Para products y variaciones, esto mira la miniatura real del post 1806 $existing_thumb = (int) get_post_meta($post_id, '_thumbnail_id', true); 1807 if ($existing_thumb > 0) { 1808 return $existing_thumb; // ya existe, salir 1809 } 1810 } 1811 1803 1812 $image_tmp = download_url($image_url); 1813 usleep(150000); // 150 ms 1804 1814 1805 1815 if( is_wp_error( $image_tmp ) ){ 1806 1816 // solo borra imágenes si era sobrescritura explícita 1807 if ($sobreescribe === true) {1808 FONE_delete_product_images($post_id, FALSE);1809 }1817 //if ($sobreescribe === true) { 1818 // FONE_delete_product_images($post_id, FALSE); 1819 //} 1810 1820 return false; 1811 1821 }else{ … … 1851 1861 if ($email === '' || $key === '') return ''; 1852 1862 1853 $urlssl = (get_option('FacturaONE_conexionSSL') == '1') ? 'https' : 'http'; 1854 $endpoint = $urlssl . '://app.ifactura.es/externalpics/index.php'; 1863 $endpoint = 'https://app.ifactura.es/externalpics/index.php'; 1855 1864 1856 1865 $payload = array('email' => $email);
Note: See TracChangeset
for help on using the changeset viewer.