<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Foro de soporte IGW - Últimos Mensajes				            </title>
            <link>https://iguannaweb.com/community/</link>
            <description>De momento esto es un foro de soporte donde iré poniendo cosas que pueden servir o que utilizo a lo largo de mi trabajo. Más adelante puede que deje o permita comentarios de vosotros.</description>
            <language>es</language>
            <lastBuildDate>Tue, 14 Apr 2026 22:52:11 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>Colorear estados de pedidos en el backend</title>
                        <link>https://iguannaweb.com/community/woocommerce/colorear-estados-de-pedidos-en-el-backend/#post-20</link>
                        <pubDate>Fri, 22 Mar 2024 17:45:53 +0000</pubDate>
                        <description><![CDATA[&lt;?php

add_action(&#039;admin_head&#039;, &#039;orbisius_tutorial_7459_render_styles&#039;);

/**
 * This will override the Completed Order Status in WooCommerce - Orders
 * @return void
 * @see
 */
...]]></description>
                        <content:encoded><![CDATA[<pre contenteditable="false">&lt;?php

add_action('admin_head', 'orbisius_tutorial_7459_render_styles');

/**
 * This will override the Completed Order Status in WooCommerce - Orders
 * @return void
 * @see https://orbisius.com/7459
 */
function orbisius_tutorial_7459_render_styles() {
    ?&gt;
    &lt;style&gt;
        .order-status.status-completed {
            color: #fff !important;
            background: red !important;
        }
    &lt;/style&gt;
    &lt;?php
}</pre>
<p> </p>
<p><strong>Fuente:</strong> <a href="https://orbisius.com/blog/change-color-completed-order-status-woocommerce/" target="_blank" rel="noopener">https://orbisius.com/blog/change-color-completed-order-status-woocommerce/</a></p>]]></content:encoded>
						                            <category domain="https://iguannaweb.com/community/"></category>                        <dc:creator>Francisco GP</dc:creator>
                        <guid isPermaLink="true">https://iguannaweb.com/community/woocommerce/colorear-estados-de-pedidos-en-el-backend/#post-20</guid>
                    </item>
				                    <item>
                        <title>noindex, nofollow si tiene parámetros específicos en la url</title>
                        <link>https://iguannaweb.com/community/otros-plugins/noindex-nofollow-si-tiene-parametros-especificos-en-la-url/#post-19</link>
                        <pubDate>Wed, 13 Dec 2023 10:04:04 +0000</pubDate>
                        <description><![CDATA[A veces no queremos que se indexe una página que tenga un parámetro determinado en la url, como puede ser &quot;orderby&quot;
add_action( &#039;wp_head&#039;, &#039;cp_prevent_indexing_orderby&#039; );

if(!function_e...]]></description>
                        <content:encoded><![CDATA[<p>A veces no queremos que se indexe una página que tenga un parámetro determinado en la url, como puede ser "orderby"</p>
<pre contenteditable="false">add_action( 'wp_head', 'cp_prevent_indexing_orderby' );

if(!function_exists('cp_prevent_indexing_orderby')){
    function cp_prevent_indexing_orderby () {
        if (isset($_GET)){
            echo '&lt;meta name="robots" content="noindex, nofollow"&gt;';
        }
    }
}</pre>
<p>Con este código puedes meter un meta para decirle a los buscadores que no indexen ni sigan determinadas páginas que muestren el parámetro deseado en la url.</p>
<p>Pero si usas Yoast SEO, puedes usar otra forma:</p>
<pre contenteditable="false">add_filter( 'wpseo_robots', 'yoast_seo_robots_remove_single' );
/**
 * Set certain posts to noindex nofollow
 */
function yoast_seo_robots_remove_single( $robots ) {

	if (isset($_GET)){
	     return 'noindex,nofollow'; 
       } else {
	     return $robots; 
       }
}</pre>]]></content:encoded>
						                            <category domain="https://iguannaweb.com/community/"></category>                        <dc:creator>Francisco GP</dc:creator>
                        <guid isPermaLink="true">https://iguannaweb.com/community/otros-plugins/noindex-nofollow-si-tiene-parametros-especificos-en-la-url/#post-19</guid>
                    </item>
				                    <item>
                        <title>Autoupgrade no termina de verificar requisitos necesarios</title>
                        <link>https://iguannaweb.com/community/modulos/autoupgrade-no-termina-de-verificar-requisitos-necesarios/#post-18</link>
                        <pubDate>Thu, 25 May 2023 16:22:27 +0000</pubDate>
                        <description><![CDATA[Si quieres actualizar a ultima versión v1.7 o v8 el módulo autoupgrade no te lo pone fácil y el último requisito de session no termina de verificar. El patch ya está pero como no ha salido l...]]></description>
                        <content:encoded><![CDATA[<p>Si quieres actualizar a ultima versión v1.7 o v8 el módulo autoupgrade no te lo pone fácil y el último requisito de <em>session</em> no termina de verificar. El patch ya está pero como no ha salido la versión nueva, te lo dejo aquí.</p>
<pre contenteditable="false">    public function isPhpSessionsValid()
    {
       /* if (!class_exists(ConfigurationTest::class)) {
            return true;
        }

        return ConfigurationTest::test_sessions();*/
        return in_array(session_status(), , true);
    }

   </pre>
<p>Esta función deberías modificarla en <strong>classes/UpgradeSelfCheck.php</strong></p>
<p> </p>]]></content:encoded>
						                            <category domain="https://iguannaweb.com/community/"></category>                        <dc:creator>Francisco GP</dc:creator>
                        <guid isPermaLink="true">https://iguannaweb.com/community/modulos/autoupgrade-no-termina-de-verificar-requisitos-necesarios/#post-18</guid>
                    </item>
				                    <item>
                        <title>Modsecurity falló al actualizar y Apache2 no inicia</title>
                        <link>https://iguannaweb.com/community/plesk/modsecurity-fallo-al-actualizar-y-apache2-no-inicia/#post-17</link>
                        <pubDate>Thu, 25 May 2023 16:18:21 +0000</pubDate>
                        <description><![CDATA[Error: modsecurity_ctl failed: START httpd_modules_ctl --disable security2
/opt/psa/admin/sbin/pleskrc execution failed:
Job for apache2.service failed because the control process exited w...]]></description>
                        <content:encoded><![CDATA[<pre contenteditable="false">Error: modsecurity_ctl failed: START httpd_modules_ctl --disable security2
/opt/psa/admin/sbin/pleskrc execution failed:
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
websrvmng: /opt/psa/admin/sbin/apache_control_adapter execution failed:
INFO: : Service: apache2, Action: start
Trying to start service apache2... failed</pre>
<p>Si te levantas un día con este error, la forma de solucionarlo.</p>
<p>1. Desinstalar mod security y volver a instalar (esta opción puede no funcionar)</p>
<p>2. Crear un archivo vacío por terminal touch /etc/asl/whitelist </p>
<p>¡Y con eso todo debería volver a funcionar!</p>
<p> </p>]]></content:encoded>
						                            <category domain="https://iguannaweb.com/community/"></category>                        <dc:creator>Francisco GP</dc:creator>
                        <guid isPermaLink="true">https://iguannaweb.com/community/plesk/modsecurity-fallo-al-actualizar-y-apache2-no-inicia/#post-17</guid>
                    </item>
				                    <item>
                        <title>Desinstalar New-Relic Extension</title>
                        <link>https://iguannaweb.com/community/plesk/desinstalar-new-relic-extension/#post-16</link>
                        <pubDate>Sun, 22 Jan 2023 15:03:21 +0000</pubDate>
                        <description><![CDATA[Si necesitas desinstalar la extensión y el servicio New-Relic de tu servidor tienes que hacer dos cosas:
1. Acceder por SSH a tu servidor y ejecturar el comando.
Ubuntu/Debian
sudo apt-ge...]]></description>
                        <content:encoded><![CDATA[<p>Si necesitas desinstalar la extensión y el servicio New-Relic de tu servidor tienes que hacer dos cosas:</p>
<p>1. Acceder por SSH a tu servidor y ejecturar el comando.</p>
<p><strong>Ubuntu/Debian</strong></p>
<pre contenteditable="false">sudo apt-get remove newrelic-infra</pre>
<p><strong>Amazon Linuz, CentOS y RHEL</strong></p>
<pre contenteditable="false">sudo yum remove newrelic-infra</pre>
<p><strong>SLES</strong></p>
<pre contenteditable="false">sudo zypper -n remove newrelic-infra</pre>
<p>Con esto eliminamos el paquete del sistema operativo. Pero la extensión plesk sigue ahí, por lo que debemos ejecutar el siguiente comando como root también. Esto es así porque desde la parte gráfica de plesk, no se ve forma de desinstalar (como pasa en otras extensiones).</p>
<pre contenteditable="false">plesk bin extension --uninstall new-relic</pre>
<p>Y con eso ya no quedaría nada de esta extensión.</p>]]></content:encoded>
						                            <category domain="https://iguannaweb.com/community/"></category>                        <dc:creator>Francisco GP</dc:creator>
                        <guid isPermaLink="true">https://iguannaweb.com/community/plesk/desinstalar-new-relic-extension/#post-16</guid>
                    </item>
				                    <item>
                        <title>Mac Repository</title>
                        <link>https://iguannaweb.com/community/mac/mac-repository/#post-15</link>
                        <pubDate>Mon, 16 Jan 2023 13:35:26 +0000</pubDate>
                        <description><![CDATA[Aquí puedes encontrar todas las imágenes de los sistemas operativos de mac.
Enlace:
 
&nbsp;2023-01-16-a-las-14.30.26.png]]></description>
                        <content:encoded><![CDATA[<p>Aquí puedes encontrar todas las imágenes de los sistemas operativos de mac.</p>
<p>Enlace: <a title="Mac Repository" href="https://www.macrepository.com/software/" target="_blank" rel="noopener">https://www.macrepository.com/software/</a></p>
<p> </p>
<div id="wpfa-7394" class="wpforo-attached-file"><a class="wpforo-default-attachment" href="//iguannaweb.com/d/wp-content/uploads/wpforo/default_attachments/1673876126-2023-01-16-a-las-143026.png" target="_blank" title="2023-01-16-a-las-14.30.26.png"><i class="fas fa-paperclip"></i>&nbsp;2023-01-16-a-las-14.30.26.png</a></div>]]></content:encoded>
						                            <category domain="https://iguannaweb.com/community/"></category>                        <dc:creator>Francisco GP</dc:creator>
                        <guid isPermaLink="true">https://iguannaweb.com/community/mac/mac-repository/#post-15</guid>
                    </item>
				                    <item>
                        <title>Añadir unidades de productos al carrito por separado</title>
                        <link>https://iguannaweb.com/community/woocommerce/anadir-unidades-de-productos-al-carrito-por-separado/#post-14</link>
                        <pubDate>Mon, 09 Jan 2023 23:56:53 +0000</pubDate>
                        <description><![CDATA[Resulta que a veces quieres que los productos se añadan al carrito por separado y no incrementen la cantidad del mismo. En este caso tengo guardado este pequeño código que encontré aquí desd...]]></description>
                        <content:encoded><![CDATA[<p>Resulta que a veces quieres que los productos se añadan al carrito por separado y no incrementen la cantidad del mismo. En este caso tengo guardado este pequeño código que encontré <a href="https://www.proteusthemes.com/help/add-product-cart-twice-instead-changing-quantity-woocommerce/" target="_blank" rel="noopener">aquí</a> desde hace un tiempo.</p>
<pre contenteditable="false">function namespace_force_individual_cart_items( $cart_item_data, $product_id ) {
  $unique_cart_item_key = md5( microtime() . rand() );
  $cart_item_data = $unique_cart_item_key;

  return $cart_item_data;
}
add_filter( 'woocommerce_add_cart_item_data', 'namespace_force_individual_cart_items', 10, 2 );</pre>]]></content:encoded>
						                            <category domain="https://iguannaweb.com/community/"></category>                        <dc:creator>Francisco GP</dc:creator>
                        <guid isPermaLink="true">https://iguannaweb.com/community/woocommerce/anadir-unidades-de-productos-al-carrito-por-separado/#post-14</guid>
                    </item>
				                    <item>
                        <title>DonDominio</title>
                        <link>https://iguannaweb.com/community/dominios/dondominio/#post-13</link>
                        <pubDate>Sun, 08 Jan 2023 16:05:39 +0000</pubDate>
                        <description><![CDATA[Cada lugar tiene sus normas en cuanto a los dominios a pesar de haber unas normas comunes, pero por ejemplo, a lo largo del tiempo no es lo mismo tener un dominio en Arsys, en IONOS, en Drea...]]></description>
                        <content:encoded><![CDATA[<p>Cada lugar tiene sus normas en cuanto a los dominios a pesar de haber unas normas comunes, pero por ejemplo, a lo largo del tiempo no es lo mismo tener un dominio en Arsys, en IONOS, en DreamHost, GoDaddy o Aruba.</p>
<p>Cada uno tiene sus condiciones y hasta la fecha y a lo largo del tiempo, me quedé con DonDominio, como lugar de registro de dominios.</p>
<p>El precio es relativamente bueno, y las condiones buenas. Tienen una buena paleta de opciones de configuración y las DNS se propagan rápido.</p>
<p>Ir a <a href="https://www.dondominio.com" target="_blank" rel="noopener">DonDominio</a></p>
<p> </p>
<div id="wpfa-7387" class="wpforo-attached-file"><a class="wpforo-default-attachment" href="//iguannaweb.com/d/wp-content/uploads/wpforo/default_attachments/1673193939-2023-01-08-a-las-170455.png" target="_blank" title="2023-01-08-a-las-17.04.55.png"><i class="fas fa-paperclip"></i>&nbsp;2023-01-08-a-las-17.04.55.png</a></div>]]></content:encoded>
						                            <category domain="https://iguannaweb.com/community/"></category>                        <dc:creator>Francisco GP</dc:creator>
                        <guid isPermaLink="true">https://iguannaweb.com/community/dominios/dondominio/#post-13</guid>
                    </item>
				                    <item>
                        <title>Mostrar campos personalizados cuando ACF está activo</title>
                        <link>https://iguannaweb.com/community/otros-plugins/mostrar-campos-personalizados-cuando-acf-esta-activo/#post-12</link>
                        <pubDate>Thu, 05 Jan 2023 09:36:02 +0000</pubDate>
                        <description><![CDATA[Hace tiempo que me hice un pequeño plugin para este tema, ya que así no tengo que estar metiendo código en el archivo funcitons.php
 
Puedes descargarlo aquí:
&nbsp;banner-772x250.png]]></description>
                        <content:encoded><![CDATA[<p>Hace tiempo que me hice un pequeño plugin para este tema, ya que así no tengo que estar metiendo código en el archivo <strong>funcitons.php</strong></p>
<p> </p>
<p>Puedes descargarlo aquí: <a href="https://wordpress.org/plugins/custom-fields-missing-when-acf-is-active/" target="_blank" rel="noopener">https://wordpress.org/plugins/custom-fields-missing-when-acf-is-active/</a></p>
<div id="wpfa-7378" class="wpforo-attached-file"><a class="wpforo-default-attachment" href="//iguannaweb.com/d/wp-content/uploads/wpforo/default_attachments/1672911552-banner-772x250.png" target="_blank" title="banner-772x250.png"><i class="fas fa-paperclip"></i>&nbsp;banner-772x250.png</a></div>]]></content:encoded>
						                            <category domain="https://iguannaweb.com/community/"></category>                        <dc:creator>Francisco GP</dc:creator>
                        <guid isPermaLink="true">https://iguannaweb.com/community/otros-plugins/mostrar-campos-personalizados-cuando-acf-esta-activo/#post-12</guid>
                    </item>
				                    <item>
                        <title>Eliminar el botón Añadir al carrito condicionalmente</title>
                        <link>https://iguannaweb.com/community/woocommerce/eliminar-el-boton-anadir-al-carrito-condicionalmente/#post-11</link>
                        <pubDate>Wed, 04 Jan 2023 20:00:12 +0000</pubDate>
                        <description><![CDATA[Fuente:
Si a veces has querido bloquear la compra por determinadas condiciones en woocommerce, este plugin es lo que necesitas.
&lt;?php
/*
Plugin Name: Remove &#039;Add to cart&#039; conditionally...]]></description>
                        <content:encoded><![CDATA[<p>Fuente: <a href="https://www.damiencarbery.com/2020/03/remove-add-to-cart-button-conditionally/" target="_blank" rel="noopener">https://www.damiencarbery.com/2020/03/remove-add-to-cart-button-conditionally/</a></p>
<p>Si a veces has querido bloquear la compra por determinadas condiciones en woocommerce, este plugin es lo que necesitas.</p>
<pre contenteditable="false">&lt;?php
/*
Plugin Name: Remove 'Add to cart' conditionally
Plugin URI:  https://www.damiencarbery.com/2020/03/remove-add-to-cart-button-conditionally/
Description: Conditionally remove the 'Add to cart' button in WooCommerce.
Author: Damien Carbery
Version: 0.4
WC tested up to: 5.9.1
*/


class IsPurchasableConditionalFiltering {
    // A reference to an instance of this class.
    private static $instance;
    // Store whether 'Add to cart' button should be displayed.
    private $purchasable;


    // Returns an instance of this class. 
    public static function get_instance() {
        if ( null == self::$instance ) {
            self::$instance = new IsPurchasableConditionalFiltering;
        }
        return self::$instance;
    }


    // Initialize the plugin variables.
    public function __construct() {
        $this-&gt;purchasable = array();

        $this-&gt;init();
    }


    // Set up WordPress specfic actions.
    public function init() {
        add_filter( 'woocommerce_is_purchasable', array( $this, 'is_purchasable_conditionals' ), 10, 2 );
        
        // Remove variations dropdown and 'Add to cart' button for variable products.
        add_action( 'woocommerce_before_single_product_summary', array( $this, 'before_single_product_summary' ) );
    }
    
    
    public function is_purchasable_conditionals( $whether_purchasable, $product ) {
        // Store the product ID as $product will be overwritten if $product is a variation.
        $product_id = $product-&gt;get_id();
        
        // Return cached result.
        if ( array_key_exists( $product_id, $this-&gt;purchasable ) ) {
            return $this-&gt;purchasable;
        }

        // Only do our conditional checks if WooCommerce deems the item to be purchasable.
        if ( $whether_purchasable ) {
            $result = true;  // Default to allowing purchase.
            // Aquí puedes bloquear por condiciones de precio, tienes que decomentar el bloque de código
            // Check our specific conditions - some examples.
            /* // Product over a certain price - this must be checked at variation
            // level so do this before the $product-&gt;get_type() check.
            if ( $product-&gt;get_price() &gt; 20 ) {
                $result = false;
            }*/
            
			/* // Aquí puedes poner las ids de productos a bloquear, tienes que decomentar el bloque de código
            $ids_not_purchasable = array ( 111, 140, 437, 1733, );
			if ( in_array( $product_id, $ids_not_purchasable ) ) {
                $result = false;
            }*/

            // If this is a variation then get the parent product so that categories can be checked.
            if ( 'variation' == $product-&gt;get_type() ) {
                $product = wc_get_product( $product-&gt;get_parent_id() );
                $product_id = $product-&gt;get_id();
            }
           // Aquí puedes bloquear por categoría, tienes que decomentar el bloque de código
            // Check if product in a certain categores.
            if ( has_term( array( 'hoodies', 'accessories', 'tshirts' ), 'product_cat', $product_id ) ) {
                $result = false;
            }

            $this-&gt;purchasable = $result;
        }
        else {
            // Store that this item cannot be purchased.
            $this-&gt;purchasable = false;
        }

        return $this-&gt;purchasable;
    }


    public function before_single_product_summary() {
        $product_id = get_the_ID();
        if ( array_key_exists( $product_id, $this-&gt;purchasable ) &amp;&amp; !$this-&gt;purchasable ) {
            // Remove the variation dropdowns and 'Add to cart' button for variable products.
            remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );
            remove_action( 'woocommerce_variable_add_to_cart', 'woocommerce_variable_add_to_cart', 30 ); 
        }
    }
}
$IsPurchasableConditionalFiltering = new IsPurchasableConditionalFiltering;</pre>
<p> </p>]]></content:encoded>
						                            <category domain="https://iguannaweb.com/community/"></category>                        <dc:creator>Francisco GP</dc:creator>
                        <guid isPermaLink="true">https://iguannaweb.com/community/woocommerce/eliminar-el-boton-anadir-al-carrito-condicionalmente/#post-11</guid>
                    </item>
							        </channel>
        </rss>
		