Help shape the award-winning Power of VAX program in just 10 minutes. Complete our short practice survey and earn a $25 honorarium. Take the Survey
Aidez à façonner le programme primé Power of VAX en seulement 10 minutes. Répondez à notre court sondage sur votre pratique et recevez un honoraire de 25 $. Répondre au sondage
Adult ADHD – Pharmacotherapy and Behavioural StrategiesSomatic/Illness Anxiety DisorderUnwrapping Lozenges: Pharmacist Guidance on Medicated vs Non-Medicated OptionsAcute Pain Management in Pharmacy Practice: Oral and Topical AnalgesicsTargeted Pain Relief: When and How to Recommend Topical AnalgesicsManaging Acute Cough in Pharmacy Practice
Puissance VAX : Rehausser la couverture vaccinale grâce à une approche rapide et factuelleAu-delà des benzodiazépines : le rôle du pharmacien dans l’avancement du traitement de l’insomnie chronique avec les ADROTraitement de la douleur aiguë en pratique de la pharmacie : Analgésiques oraux et topiquesTraitement de la toux aiguë en contexte de pratique pharmaceutiqueDéballer les pastilles : Informer les pharmaciens sur les options médicamenteuses et non-médicamenteusesPrévention du VRS pour tous les nourrissons
Trouvez votre prochain cours
Parcourez les derniers cours de formation continue en pharmacie.
Catégories
Professions
Régions
Accreditations
“No courses were found based on your selected filters. Feel free to check back later as new courses are added regularly.”
(function() {
var ajaxurl = window.ajaxurl ||
(window.wp && wp.ajax && wp.ajax.settings && wp.ajax.settings.url) ||
'/wp-admin/admin-ajax.php';
var injecting = false;
var lastInjectedAt = 0;
var afterIndex = 3; // insert AFTER the 4th item → appears as #5
// Target this specific FacetWP results inside your wrapper
function getContainer() {
return document.querySelector('.coursesListWrapper .facetwp-template') ||
document.querySelector('.facetwp-template');
}
function getItems(c) { return c ? c.querySelectorAll('.e-loop-item') : []; }
function reflowGrid() {
try {
if (window.elementorFrontend?.elements?.$window) {
elementorFrontend.elements.$window.trigger('resize');
} else if (typeof jQuery !== 'undefined') {
jQuery(window).trigger('resize');
} else {
window.dispatchEvent(new Event('resize'));
}
} catch (e) {}
}
// --- PURGE HELPERS ---------------------------------------------------------
var PURGE_SELECTOR = '.rxbri-courses-rectangle-placement, .rxbri-course-ads-placement, .rxbri-blog-ads-placement, .mdbc2-carousel-ads-placement';
function purgeStrays(container) {
if (!container) return;
document.querySelectorAll(PURGE_SELECTOR).forEach(function(el) {
if (container.contains(el) && !el.closest('.course-ads-slot')) el.remove();
});
}
function purgeBurst(container) {
purgeStrays(container);
setTimeout(function(){ purgeStrays(container); }, 50);
setTimeout(function(){ purgeStrays(container); }, 150);
setTimeout(function(){ purgeStrays(container); }, 300);
setTimeout(function(){ purgeStrays(container); }, 600);
}
// ---------------------------------------------------------------------------
function injectAd() {
// throttle in case 'facetwp-loaded' fires twice quickly
var now = Date.now();
if (now - lastInjectedAt < 200) return;
lastInjectedAt = now;
if (injecting) return;
injecting = true;
var c = getContainer();
if (!c) { injecting = false; return; }
// HARD CLEAN first
purgeBurst(c);
// Remove previously injected ad (ours)
c.querySelectorAll('.course-ads-slot').forEach(function(el){ el.remove(); });
var it = getItems(c);
var count = it.length;
if (count === 0) {
purgeBurst(c);
injecting = false;
return;
}
var targetEl = (count > afterIndex) ? it[afterIndex] : it[count - 1];
fetchAndInsert(c, targetEl);
}
function fetchAndInsert(container, afterEl) {
var xhr = new XMLHttpRequest();
var data = new FormData();
data.append('action', 'my_get_advads_placement');
data.append('placement', 'courses-rectangle-placement'); // your placement slug
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
try {
var resp = JSON.parse(xhr.responseText);
if (resp && resp.success && resp.data) {
// final sweep before inserting
purgeBurst(container);
var wrap = document.createElement('div');
wrap.className = 'e-loop-item course-ads-slot';
wrap.innerHTML = resp.data; // should contain .rxbri-courses-rectangle-placement
if (afterEl) {
afterEl.insertAdjacentElement('afterend', wrap);
} else {
container.appendChild(wrap);
}
purgeBurst(container);
if (typeof jQuery !== 'undefined') {
jQuery(document).trigger('advanced_ads_ready');
}
reflowGrid();
}
} catch(e) {}
}
injecting = false;
}
};
xhr.open('POST', ajaxurl, true);
xhr.send(data);
}
// Bind to FacetWP loaded (initial + every facet change)
if (typeof jQuery !== 'undefined') {
jQuery(document).off('facetwp-loaded.coursesAds').on('facetwp-loaded.coursesAds', injectAd);
} else if (window.FWP?.hooks?.addAction) {
if (!window.__coursesAdsBound) {
FWP.hooks.addAction('facetwp/loaded', injectAd);
window.__coursesAdsBound = true;
}
}
})();