
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
      <title>ROXL&#39;s Blog - Random Online eXperiment Lab</title>
      <link>https://roxl.net/es/blog</link>
      <description>Automating. Saving time. Making the world better.</description>
      <language>es-es</language>
      <managingEditor>therawlex@gmail.com (Artem Krivoshchekov)</managingEditor>
      <webMaster>therawlex@gmail.com (Artem Krivoshchekov)</webMaster>
      <lastBuildDate>Sat, 08 Aug 2026 00:00:00 GMT</lastBuildDate>
      <atom:link href="https://roxl.net/es/etiquetas/cactusplay-marketplace/feed.xml" rel="self" type="application/rss+xml"/>
      
  <item>
    <guid>https://roxl.net/es/blog/backend/analytics-counters-should-not-live-in-theme-files</guid>
    <title>Los contadores de analítica no pertenecen a los archivos del tema</title>
    <link>https://roxl.net/es/blog/backend/analytics-counters-should-not-live-in-theme-files</link>
    <description>Un snippet de seguimiento pegado en una plantilla desaparece con la siguiente actualización del tema, compite con la página por el navegador y duplica las cifras cuando alguien lo pega dos veces. Los tres problemas tienen el mismo arreglo.</description>
    <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
    <author>therawlex@gmail.com (Artem Krivoshchekov)</author>
    <category>wordpress</category><category>php</category><category>javascript</category><category>analytics</category><category>performance</category><category>privacy</category><category>cactusplay-marketplace</category>
  </item>

  <item>
    <guid>https://roxl.net/es/blog/backend/delivery-as-a-consequence-of-payment</guid>
    <title>Que la entrega sea consecuencia del pago, no una tarea que alguien ejecuta</title>
    <link>https://roxl.net/es/blog/backend/delivery-as-a-consequence-of-payment</link>
    <description>La entrega manual de productos digitales está limitada por el horario laboral y protegida solo por la atención de alguien. Mover la entrega a los eventos del pedido cambia lo que el sistema garantiza, y la API es lo que impide que un segundo canal se convierta en una segunda implementación.</description>
    <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
    <author>therawlex@gmail.com (Artem Krivoshchekov)</author>
    <category>woocommerce</category><category>wordpress</category><category>php</category><category>automation</category><category>rest-api</category><category>e-commerce</category><category>cactusplay-marketplace</category>
  </item>

  <item>
    <guid>https://roxl.net/es/blog/backend/derived-queue-resumable-email-campaigns</guid>
    <title>Deriva la cola, no la guardes: campañas de email reanudables</title>
    <link>https://roxl.net/es/blog/backend/derived-queue-resumable-email-campaigns</link>
    <description>Un envío masivo que se cae a mitad o se reinicia desde el principio, enviando a todos dos veces, o se sigue con un cursor que se queda obsoleto. Hay una tercera opción: calcular a quién le falta el mensaje en lugar de registrarlo.</description>
    <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
    <author>therawlex@gmail.com (Artem Krivoshchekov)</author>
    <category>wordpress</category><category>mysql</category><category>sql</category><category>cron</category><category>email</category><category>queues</category><category>cactusplay-marketplace</category>
  </item>

  <item>
    <guid>https://roxl.net/es/blog/backend/pricing-a-catalogue-against-an-upstream-store</guid>
    <title>Poner precio a un catálogo contra una tienda que no controlas</title>
    <link>https://roxl.net/es/blog/backend/pricing-a-catalogue-against-an-upstream-store</link>
    <description>Revender significa que tus precios dependen de que otro cambie los suyos. Consultar al cargar la página tumba tu tienda con la suya; una exportación nocturna se queda obsoleta. El camino intermedio es una caché con una estrategia de precio detrás.</description>
    <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
    <author>therawlex@gmail.com (Artem Krivoshchekov)</author>
    <category>woocommerce</category><category>wordpress</category><category>php</category><category>caching</category><category>pricing</category><category>api</category><category>cactusplay-marketplace</category>
  </item>

  <item>
    <guid>https://roxl.net/es/blog/backend/support-widget-that-knows-who-it-is-talking-to</guid>
    <title>Un widget de soporte que ya sabe con quién habla</title>
    <link>https://roxl.net/es/blog/backend/support-widget-that-knows-who-it-is-talking-to</link>
    <description>Pegar un widget de chat en una plantilla funciona hasta que el tema se actualiza, hasta que hay que cambiar un ajuste o hasta que el widget añade una consulta a la base de datos en cada página. Tres decisiones pequeñas lo arreglan todo.</description>
    <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
    <author>therawlex@gmail.com (Artem Krivoshchekov)</author>
    <category>wordpress</category><category>woocommerce</category><category>php</category><category>caching</category><category>support</category><category>freescout</category><category>cactusplay-marketplace</category>
  </item>

  <item>
    <guid>https://roxl.net/es/blog/backend/taking-payment-through-someone-elses-gateway</guid>
    <title>Cobrar a través de una pasarela que pertenece a otro sitio</title>
    <link>https://roxl.net/es/blog/backend/taking-payment-through-someone-elses-gateway</link>
    <description>Cuando la pasarela de pago está contratada por otro sitio, el comprador se marcha y tú tienes que enterarte del resultado de algún modo. Las dos formas en que esta integración suele fallar son una llamada de retorno sin autenticar y dos registros de pedido que se desincronizan.</description>
    <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
    <author>therawlex@gmail.com (Artem Krivoshchekov)</author>
    <category>woocommerce</category><category>wordpress</category><category>php</category><category>payments</category><category>hmac</category><category>webhooks</category><category>cactusplay-marketplace</category>
  </item>

  <item>
    <guid>https://roxl.net/es/blog/cybersecurity/social-login-duplicate-accounts-race-condition</guid>
    <title>Por qué el acceso social duplica cuentas y cómo lo arregla una tabla de bloqueo</title>
    <link>https://roxl.net/es/blog/cybersecurity/social-login-duplicate-accounts-race-condition</link>
    <description>Una llamada de retorno de OAuth puede dispararse dos veces por un mismo acceso, y un manejador ingenuo crea dos cuentas para una persona. Por qué ocurre, por qué comprobar si el usuario existe no lo soluciona y por qué sí lo hace reservar el código de autorización.</description>
    <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
    <author>therawlex@gmail.com (Artem Krivoshchekov)</author>
    <category>wordpress</category><category>oauth</category><category>openid</category><category>authentication</category><category>woocommerce</category><category>race-condition</category><category>cactusplay-marketplace</category>
  </item>

  <item>
    <guid>https://roxl.net/es/blog/cybersecurity/two-factor-codes-for-shared-accounts-woocommerce</guid>
    <title>Servir códigos 2FA rotativos a una tienda sin filtrar el secreto</title>
    <link>https://roxl.net/es/blog/cybersecurity/two-factor-codes-for-shared-accounts-woocommerce</link>
    <description>Cuando la entrega depende de un código que cambia cada treinta segundos, leerlo del móvil no escala. Cómo exponer los códigos actuales a una tienda y a sus operadores sin repartir el secreto TOTP por todo el sistema.</description>
    <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
    <author>therawlex@gmail.com (Artem Krivoshchekov)</author>
    <category>woocommerce</category><category>wordpress</category><category>totp</category><category>two-factor</category><category>rest-api</category><category>security</category><category>cactusplay-marketplace</category>
  </item>

  <item>
    <guid>https://roxl.net/es/blog/cybersecurity/wordpress-plugin-dependency-conflicts-php-scoper</guid>
    <title>Dos plugins, una librería, un sitio roto: aislar dependencias en compilación</title>
    <link>https://roxl.net/es/blog/cybersecurity/wordpress-plugin-dependency-conflicts-php-scoper</link>
    <description>Los plugins de WordPress traen su propio directorio vendor, y PHP carga la versión que se registró primero. Por qué eso rompe el plugin del vecino y por qué el renombrado de espacios de nombres en compilación es la única solución que sobrevive al mundo real.</description>
    <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
    <author>therawlex@gmail.com (Artem Krivoshchekov)</author>
    <category>wordpress</category><category>php</category><category>composer</category><category>php-scoper</category><category>captcha</category><category>plugin-development</category><category>cactusplay-marketplace</category>
  </item>

    </channel>
  </rss>
