function apg_limpiamos_opciones($limpia = false) { global $limpieza; $apg_opciones = $encontrados = array(); //Vemos las opciones que existen foreach (wp_load_alloptions() as $nombre => $valor) { if (stristr($nombre, 'woocommerce_apg_shipping_')) { $apg_opciones[] = $nombre; } } //Vemos las opciones que usamos $envios = (array) apg_shipping_lee_envios(); $encontrados[] = "woocommerce_apg_shipping_settings"; foreach ($envios as $envio) { foreach ($apg_opciones as $opcion) { if (strpos($opcion, apg_limpia_guiones($envio)) !== false) { $encontrados[] = apg_limpia_guiones($opcion); } } } //Borramos las no necesarias $borrar = !$limpia ? array_diff($apg_opciones, $encontrados) : $apg_opciones; foreach ($borrar as $borrame) { if (preg_match('/woocommerce_apg_shipping_(\\d)_settings/', $borrame, $valor)) { update_option("woocommerce_apg_shipping_" . apg_limpia_guiones($envios[$valor[1] - 1]) . "_settings", get_option($borrame)); } delete_option($borrame); } $limpieza = true; //Cambiamos la variable global para que sólo se ejecute una vez }
<?php $envios = apg_shipping_lee_envios(); ?> <tr valign="top"> <th scope="row" class="titledesc"><?php echo $opciones['name']; ?> <img class="help_tip" data-tip="<?php echo $opciones['desc_tip']; ?> " src="<?php echo WC()->plugin_url(); ?> /assets/images/help.png" height="16" width="16" /></th> <td class="forminp"><table id="envios" class="wc_shipping widefat wp-list-table" cellspacing="0"> <thead> <tr> <th class="ordenar sort"> </th> <th class="name nombre_envio"><?php _e('Shipping Methods', 'apg_shipping'); ?> </th> <th class="borrar"> </th> </tr> </thead> <tbody> <?php if ($envios) { foreach ($envios as $envio) {