Custom button
If you wish to integrate a custom subscribe/unsubscribe button with your own design, you can.
These are the exposed pixel features that you can use in your JS code to do a custom integration:
await pushye.get_subscription_status(); await pushye.subscribe(); await pushye.unsubscribe();
Here is a sample code integration that uses these custom JS functions:
<span id="pusher_loading">Loading status...</span> <a href="#" id="pusher_subscribe" style="display: none;">Subscribe ✅</a> <a href="#" id="pusher_unsubscribe" style="display: none;">Unsubscribe ❌</a> <script defer> let initiate_pusher_script = async () => { if(typeof pusher !== 'undefined') { clearInterval(pusher_is_loaded_interval); /* Get status of subscription */ let status = await <?= settings()->websites->pixel_exposed_identifier ?>.get_subscription_status(); /* Remove loading message */ document.querySelector('#pusher_loading').style.display = 'none'; /* Display subscribe or unsubscribe button based on the current subscription status */ if(status) { document.querySelector('#pusher_unsubscribe').style.display = 'block'; document.querySelector('#pusher_subscribe').style.display = 'none'; } else { document.querySelector('#pusher_unsubscribe').style.display = 'none'; document.querySelector('#pusher_subscribe').style.display = 'block'; } } } let pusher_is_loaded_interval = setInterval(initiate_pusher_script, 100); /* Attach simple subscribe event */ document.querySelector(`#pusher_subscribe`) && document.querySelector(`#pusher_subscribe`).addEventListener('click', async event => { event.preventDefault(); await <?= settings()->websites->pixel_exposed_identifier ?>.subscribe(event); initiate_pusher_script(); }); /* Attach simple unsubscribe event */ document.querySelector(`#pusher_unsubscribe`) && document.querySelector(`#pusher_unsubscribe`).addEventListener('click', async event => { event.preventDefault(); await <?= settings()->websites->pixel_exposed_identifier ?>.unsubscribe(event); initiate_pusher_script(); }); </script>