Para mudar automaticamente os membros para uma associação gratuita quando a conta deles expirar/cancelar, você usaria o sistema de notificação por push para chamar um script personalizado que atualizaria a conta do membro para estar ativa em uma associação gratuita.
Utilizações do MemberMouse Função cron integrada do WordPress to check two times a day for any accounts that should be expired. WordPress' cron is triggered by traffic coming to the site so if you have minimal traffic coming to the site, the period of time in between when it's executed may be less frequent than two times per day. Any activity on the site will trigger the cron to run, so if you have minimal traffic and notice it hasn't run, simply visit any page on your site to initiate it.
Aqui está um exemplo de script que você pode usar como ponto de partida:
<?php
// ===> TODO make sure this script is placed in the same directory as wp-load.php or if you put it somewhere else
// make sure to update the paths below
require_once("wp-load.php");
require_once("wp-content/plugins/membermouse/includes/mm-constants.php");
require_once("wp-content/plugins/membermouse/includes/init.php");
// ================= START CUSTOMIZATION ====================================
// If you need help finding your API URL, key or secret, read this article:
// http://support.membermouse.com/support/solutions/articles/9000020340-api-credentials-overview
// Your API URL
$apiUrl = "http://yourdomain.com/wp-content/plugins/membermouse/api/request.php";
// Your API key
$apiKey = "abc123def456";
// Your API secret
$apiSecret = "abc123def456";
// If you need help finding the membership level ID, read this article:
// http://support.membermouse.com/support/solutions/articles/9000020396-finding-ids-for-membership-levels-products-and-bundles
// The ID of the free membership level to switch the member to
$freeMembershipLevelId = 1;
// ================= END CUSTOMIZATION ======================================
// ==========================================================================
if(!isset($_GET["member_id"]) || empty($_GET["member_id"]))
{
exit;
}
$memberId = $_GET["member_id"];
$inputParams = "apikey={$apiKey}&apisecret={$apiSecret}&";
$inputParams .= "member_id={$memberId}&";
$inputParams .= "status=1&";
$inputParams .= "membership_level_id={$freeMembershipLevelId}&";
$apiCallUrl = "{$apiUrl}?q=/updateMember";
$ch = curl_init($apiCallUrl);
// ================= User Agent Header
$headers = array(
'Referrer: ' . site_url(),
'User-Agent: ' . MM_CURL_USER_AGENT,
);
// ================= End User Agent Header
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $inputParams);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
echo "<pre>".print_r($result, true)."</pre>";
?>
Esse script alterará o nível de associação do membro para o indicado no script e definirá seu status como "Ativo". Para que o script funcione, você precisa fornecer suas informações de API e o ID de nível de associação apropriado. Instruções adicionais podem ser encontradas nos comentários do script.
OBSERVAÇÃO: Este script é destinado a pessoas com experiência em desenvolvimento. A Equipe de Sucesso do Cliente do MemberMouse não pode fornecer nenhum suporte em relação à interpretação ou ao uso desse script.
After you modified the script as needed, download it and save it. In this example, we suggest to save it under the name: free-member-downgrade.php
Next, upload it to your server within the public_html.
Em seguida, você deve criar uma notificação por push que é acionado no Mudança de status de associação evento. Se você quiser que ele ocorra quando a associação expirar, escolha "Expirado" no campo Quando o status de membro é... menu suspenso.
A configuração seria mais ou menos assim:
OBSERVAÇÃO: Se você quiser que isso ocorra quando a associação for cancelada, selecione "Cancelada" no campo Quando o status de membro é... menu suspenso.
Você deve executar alguns testes para garantir que tudo esteja funcionando corretamente. Para fazer isso, você precisará usar uma conta de membro de teste para recriar o cenário em que a conta expira ou é cancelada. Se tudo estiver configurado corretamente, isso deverá fazer com que a conta de teste permaneça ativa em um nível de associação gratuita.