Plugin Directory

Changeset 3451316


Ignore:
Timestamp:
02/01/2026 10:37:48 AM (3 weeks ago)
Author:
facturaone
Message:

v4.83

Location:
wp-facturaone/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • wp-facturaone/trunk/FONE_custom_products.php

    r3439531 r3451316  
    485485        if(strtolower($menu->slug) !== strtolower(get_option('FacturaONE_dynamicmenu')) || $menu_items=='' || ( is_admin() ) ) return $items; return $menu_items;
    486486    }
    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)
    488495    {
    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
    492514        return $nav_menu;
    493515    }
  • wp-facturaone/trunk/ajax.php

    r3451130 r3451316  
    7676    if ($backgroundtask!='' && $backgroundid!='') {
    7777        update_option('_facturaone_job_last_run_' . (int)$backgroundid, time());
    78        
     78
    7979        // Habilita ejecución prolongada y evita abortos de conexión
    8080        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
    8285
    8386        $status_value = get_option('_facturaone_status_value');
  • wp-facturaone/trunk/update_productos.php

    r3451081 r3451316  
    236236
    237237                                    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);
    243238                               }
    244239                        }
     
    246241                            foreach ($jugadorB as $posicionC=>$jugadorC)
    247242                               {
    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!=''){
    250245                                        $hijo_item_lookup_id=$jugadorC['item_lookup_id'];
    251246                                        $pic_item_name_variacion=$jugadorC['item_name'];
     
    254249                                    }
    255250                               }
    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                        }                   
    257265                    }
    258266               }
  • wp-facturaone/trunk/wp-facturaone.php

    r3451130 r3451316  
    44Plugin URI: https://www.facturaone.com/
    55Description: La forma más fácil de trabajar con tu tienda online desde nuestro ERP FacturaONE.
    6 Version: 4.82
     6Version: 4.83
    77Author: FacturaONE
    88Author URI: https://www.facturaone.com/
     
    17041704                update_option('FacturaONE_userdb', $userdb);
    17051705            }
    1706             $urlssl  = (get_option('FacturaONE_conexionSSL') == '1') ? 'https' : 'http';
    17071706            $userdb  = (int)$userdb;
    17081707            $token   = FONE_get_externalpics_token($userdb);
    17091708            $fileurl = '';
    17101709            if ($token !== '') {
    1711                 $fileurl = $urlssl.'://app.ifactura.es/externalpics/index.php'
     1710                $fileurl = 'https://app.ifactura.es/externalpics/index.php'
    17121711                        .'?i='.(int)$item_lookup_id
    17131712                        .'&d='.(int)$userdb
    17141713                        .'&f=1&s='.$token
    17151714                        .'&time='.time();
    1716                 if (preg_match('~^https?://~i', $urlimage)) {
    1717                     // URL externa: fuerza descarga/actualiza cache en el ERP y devuelve FULL
    1718                     $fileurl .= '&n='.base64_encode($urlimage);
    1719                 }
    17201715                if (trim($item_txt_alternativo) == '') {
    17211716                    $item_txt_alternativo = str_replace(['_','-'], ' ', $item_name);
     
    17651760                }
    17661761
    1767                 $urlssl = (get_option('FacturaONE_conexionSSL') == '1') ? 'https' : 'http';
    17681762                $userdb_int = (int)$userdb;
    17691763
     
    17721766
    17731767                // 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'
    17751769                        .'?i='.(int)$hijo_item_lookup_id
    17761770                        .'&d='.(int)$userdb_int
    17771771                        .'&f=1&s='.$token
    17781772                        .'&time='.time();
    1779                 // Si es URL externa, forzamos descarga/cache en el ERP
    1780                 if (preg_match('~^https?://~i', $urlimage)) {
    1781                     $fileurl .= '&n=' . base64_encode($urlimage);
    1782                 }
    1783 
    17841773                if (trim((string)$pic_item_txt_alternativo_variacion) === '') {
    17851774                    $pic_item_txt_alternativo_variacion = str_replace(['_','-'], ' ', (string)$pic_item_name_variacion);
     
    17981787}
    17991788function 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   
    18001792    require_once(ABSPATH . 'wp-admin/includes/media.php');
    18011793    require_once(ABSPATH . 'wp-admin/includes/file.php');
    18021794    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
    18031812    $image_tmp = download_url($image_url); 
     1813    usleep(150000); // 150 ms
    18041814
    18051815    if( is_wp_error( $image_tmp ) ){
    18061816        // 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        //}
    18101820        return false;
    18111821    }else{
     
    18511861    if ($email === '' || $key === '') return '';
    18521862
    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';
    18551864
    18561865    $payload = array('email' => $email);
Note: See TracChangeset for help on using the changeset viewer.