{"id":17111,"date":"2024-01-17T13:25:39","date_gmt":"2024-01-17T18:25:39","guid":{"rendered":"https:\/\/membermouse.com\/?post_type=ht_kb&#038;p=17111"},"modified":"2024-08-08T12:33:42","modified_gmt":"2024-08-08T16:33:42","slug":"personalizacion-de-los-intentos-de-facturacion-vencida","status":"publish","type":"ht_kb","link":"https:\/\/membermouse.com\/es\/docs\/personalizacion-de-los-intentos-de-facturacion-vencida\/","title":{"rendered":"Personalizaci\u00f3n del calendario de intentos de devoluci\u00f3n de pagos atrasados"},"content":{"rendered":"<p><em><mark style=\"background-color:#8ed1fc\" class=\"has-inline-color has-black-color\">MemberMouse 3.0+<\/mark><\/em><\/p>\n\n\n\n<p><em><strong>NOTA:&nbsp;<\/strong>Con los servicios de pago que no admiten la funcionalidad de tarjeta en archivo (es decir, PayPal, Authorize.net), MemberMouse no tiene control sobre el proceso de facturaci\u00f3n recurrente y&nbsp;<strong>no<\/strong>&nbsp;gestionar autom\u00e1ticamente los pagos atrasados.<\/em><\/p>\n\n\n\n<p>Por defecto, MemberMouse tiene un proceso de reclamaci\u00f3n incorporado para el cobro de pagos atrasados. Si una suscripci\u00f3n no se factura en la fecha prevista, MemberMouse realiza tres intentos adicionales en el plazo de una semana para cobrar el pago. MemberMouse tambi\u00e9n enviar\u00e1 una notificaci\u00f3n configurable de <a href=\"https:\/\/membermouse.com\/es\/docs\/enviar-una-notificacion-de-pago-atrasado-a-los-clientes\/\" title=\"\">notificaci\u00f3n de pago atrasado <\/a>despu\u00e9s de cada pago fallido. Si desea consultar una descripci\u00f3n detallada de este proceso, vaya a nuestro art\u00edculo <a href=\"https:\/\/membermouse.com\/es\/docs\/gestion-automatizada-de-los-pagos-atrasados\/\" title=\"\">Gesti\u00f3n automatizada de los pagos atrasados<\/a>.<\/p>\n\n\n\n<p>Puede ajustar los tiempos entre cada intento de facturaci\u00f3n, pero los tres intentos no se pueden cambiar. Se trata de un n\u00famero fijo.<\/p>\n\n\n\n<p>Aunque este intervalo de recogida funciona muy bien por defecto, es posible que desee personalizar los d\u00edas que transcurren entre un intento de recogida y la duraci\u00f3n de su proceso de recogida general. Esto se puede personalizar utilizando un filtro de WordPress, <strong>mm_billing_subscription_dunning_interval<\/strong>.<\/p>\n\n\n\n<p>Los filtros son funciones por las que WordPress pasa datos en ciertos puntos de la ejecuci\u00f3n justo antes de tomar alguna acci\u00f3n con los datos. MemberMouse define su propio conjunto de filtros que puede utilizar para controlar el flujo de ejecuci\u00f3n en MemberMouse antes de realizar determinadas acciones.<\/p>\n\n\n\n<p>He aqu\u00ed un ejemplo b\u00e1sico:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function customContentProtection($data)\n{\n     devuelve true;\n}\nadd_filter('mm_bypass_content_protection', 'customContentProtection');\n<\/code><\/pre>\n\n\n\n<p>En este ejemplo, utilizamos la funci\u00f3n&nbsp;<a href=\"http:\/\/codex.wordpress.org\/Function_Reference\/add_filter\" target=\"_blank\" rel=\"noreferrer noopener\"><em>add_filter()<\/em><\/a>&nbsp;para indicar que el&nbsp; <em>customContentProtection()<\/em>&nbsp;cuando MemberMouse aplique el m\u00e9todo&nbsp; <em>mm_bypass_content_protection<\/em>&nbsp;filtro. <\/p>\n\n\n\n<p>Para obtener m\u00e1s informaci\u00f3n sobre c\u00f3mo trabajar con la Action API de WordPress&nbsp;<a href=\"http:\/\/codex.wordpress.org\/Plugin_API\" target=\"_blank\" rel=\"noreferrer noopener\">leer este art\u00edculo<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Personalizaci\u00f3n de los intervalos de reclamaci\u00f3n <\/h2>\n\n\n\n<p>MemberMouse pasa dos argumentos a su funci\u00f3n. El primero es un entero <code>$failureInterval<\/code>\u00a0que representa el n\u00famero predeterminado de d\u00edas antes de que se realice el siguiente intento. El segundo es un n\u00famero entero <code>$failureState<\/code>\u00a0que representa el estado concreto de facturaci\u00f3n fallida. Actualmente existen tres estados de fallo: 2, 3, 4 que representan el segundo, tercer y \u00faltimo intento de cobro, respectivamente.<\/p>\n\n\n\n<p>Su funci\u00f3n debe devolver un n\u00famero entero que represente el n\u00famero de d\u00edas que deben transcurrir antes del siguiente intento. He aqu\u00ed un ejemplo que reproduce los intervalos de reclamaci\u00f3n por defecto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function customDunningInterval($failureInterval, $failureState)\n{\n   switch ($failureState)\n   {\n      caso 2:\n         return 2; \/\/ Primer reintento, dos d\u00edas despu\u00e9s del fallo de facturaci\u00f3n inicial\n      \n      caso 3: return 3\n         return 3; \/\/ Segundo reintento, tres d\u00edas despu\u00e9s del primer reintento\n      \n      caso 4: return 2\n         return 2; \/\/ Tercer reintento, dos d\u00edas despu\u00e9s del segundo reintento\n      \n      por defecto:\n         return $failureInterval;\n   }\n}\nadd_filter(\"mm_billing_subscription_dunning_interval\", \"customDunningInterval\", 10, 2);<\/code><\/pre>\n\n\n\n<p>Para personalizar los intervalos de reclamaci\u00f3n, s\u00f3lo tiene que cambiar los valores devueltos en las tres sentencias case a la duraci\u00f3n deseada en d\u00edas.<\/p>\n\n\n\n<p>Por lo tanto, si quisiera reintentar el pago 3 d\u00edas, 5 d\u00edas y 7 d\u00edas despu\u00e9s de cada intento, cambiar\u00eda la funci\u00f3n de la siguiente manera:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function customDunningInterval($failureInterval, $failureState)\n{\n   switch ($failureState)\n   {\n      caso 2:\n         return 2; \/\/ Primer reintento, tres d\u00edas despu\u00e9s del fallo de facturaci\u00f3n inicial\n      \n      caso 3: return 3\n         return 3; \/\/ Segundo reintento, cinco d\u00edas despu\u00e9s del primer reintento\n      \n      caso 4: return 2\n         return 2; \/\/ Tercer reintento, siete d\u00edas despu\u00e9s del segundo reintento\n      \n      por defecto:\n         return $failureInterval;\n   }\n}\nadd_filter(\"mm_billing_subscription_dunning_interval\", \"customDunningInterval\", 10, 2);<\/code><\/pre>","protected":false},"excerpt":{"rendered":"<p>MemberMouse 3.0+ NOTA: Con los servicios de pago que no admiten la funcionalidad de tarjeta en archivo (es decir, PayPal, Authorize.net), MemberMouse no tiene control sobre el proceso de facturaci\u00f3n recurrente y no gestiona autom\u00e1ticamente los pagos vencidos. Por defecto, MemberMouse...<\/p>","protected":false},"author":9645,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"_strive_editorial_status":"not-started","_strive_copy_of":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"ht-kb-category":[138],"ht-kb-tag":[],"class_list":["post-17111","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-tips-tricks"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/membermouse.com\/es\/wp-json\/wp\/v2\/ht-kb\/17111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/membermouse.com\/es\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/membermouse.com\/es\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/membermouse.com\/es\/wp-json\/wp\/v2\/users\/9645"}],"replies":[{"embeddable":true,"href":"https:\/\/membermouse.com\/es\/wp-json\/wp\/v2\/comments?post=17111"}],"version-history":[{"count":0,"href":"https:\/\/membermouse.com\/es\/wp-json\/wp\/v2\/ht-kb\/17111\/revisions"}],"wp:attachment":[{"href":"https:\/\/membermouse.com\/es\/wp-json\/wp\/v2\/media?parent=17111"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/membermouse.com\/es\/wp-json\/wp\/v2\/ht-kb-category?post=17111"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/membermouse.com\/es\/wp-json\/wp\/v2\/ht-kb-tag?post=17111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}