import { Button } from '@wordpress/components'; import { useEffect, useState } from '@wordpress/element'; import { __, sprintf } from '@wordpress/i18n'; import { Icon, check, warning } from '@wordpress/icons'; import { installPlugin, activatePlugin } from '@shared/api/wp'; import { useActivityStore } from '@shared/state/activity'; export const RecommendationCard = ({ recommendation }) => { if (recommendation.pluginSlug) { return ; } return ; }; const LinkCard = ({ recommendation }) => { const { by, slug, description, image, title, linkType } = recommendation; const { incrementActivity } = useActivityStore(); if (!recommendation?.[linkType]) return null; return ( incrementActivity(`recommendations-${slug}`)} target="_blank" rel="noopener noreferrer" className="cursor-pointer rounded border border-gray-200 bg-transparent p-4 text-left text-base no-underline hover:border-design-main hover:bg-gray-50 rtl:text-right">
{
{title}
{by &&
{by}
}
{description}
); }; const InstallCard = ({ recommendation }) => { const { by, slug, description, image, title, pluginSlug } = recommendation; const { incrementActivity } = useActivityStore(); return (
incrementActivity(`recommendations-install-${slug}`)} className="rounded border border-gray-200 bg-transparent p-4 text-left text-base rtl:text-right">
{
{title}
{by &&
{by}
}
{description}
); }; const InstallButton = ({ pluginSlug }) => { const [installing, setInstalling] = useState(false); const [status, setStatus] = useState(''); useEffect(() => { const { installedPlugins, activePlugins } = window.extSharedData; const hasPlugin = (p) => p?.includes(pluginSlug); const installed = Object.values(installedPlugins).some(hasPlugin); const active = Object.values(activePlugins).some(hasPlugin); if (installed) setStatus('inactive'); if (active) setStatus('active'); }, [pluginSlug, setStatus]); const handleClick = async () => { setInstalling(true); try { await installPlugin(pluginSlug); } catch (_) { // Fail silently if the plugin is already installed } try { await activatePlugin(pluginSlug); setStatus('active'); } catch (_) { setStatus('error'); setTimeout(() => { setStatus(status); }, 1500); } setInstalling(false); }; if (status === 'error') { return ( <>

{__('Error', 'extendify-local')}

); } if (status === 'active') { return ( <>

{__('Active', 'extendify-local')}

); } if (status === 'inactive') { return ( ); } return ( ); };

Get Pro Addon to unlock more features

The features below are available in Nextend Social Login Pro Addon. Get it today and tweak the awesome settings.

If you already have a license, you can Authorize your Pro Addon. Otherwise you can purchase it using the button below.

Buy Pro Addon Authorize Pro Addon

Button style

Login form



Login layout

Register form



Register layout

Billing form


Action: woocommerce_after_checkout_billing_form

Action: woocommerce_after_checkout_registration_form

Action: woocommerce_after_checkout_shipping_form
Billing layout

Account details



Button alignment



Email template for registration


Defines whether the registration with Nextend Social Login will send the same registration notification that WooCommerce does, instead of the WordPress default one.

{"id":1585,"date":"2024-05-31T13:13:41","date_gmt":"2024-05-31T13:13:41","guid":{"rendered":"https:\/\/dispenseroo.store\/?page_id=1585"},"modified":"2024-09-12T17:53:02","modified_gmt":"2024-09-12T17:53:02","slug":"vaporizers-catridges","status":"publish","type":"page","link":"https:\/\/dispenseroo.store\/vaporizers-catridges\/","title":{"rendered":"Vaporizers & Catridges"},"content":{"rendered":"\n\t
\n\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\n\n\t\t<\/div>\n\n\t\t\n\n\t\t
\n\t\t\t\n\n
\n\n\n\t
\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\n

Cannabis vapes offer unique advantages. Easy, discreet, and portable, concentrate cartridges and vape pens are available in a nearly endless selection of types and varieties. They are especially cost-effective and provide the ability to focus on the strain\u2019s distinctive flavor profile and characteristics. There\u2019s none of the smoke, lingering aroma, or extra gear required, yet you get the benefits of customized and precise dosing.<\/p>\n\t

\n\t\t\n\n

GET THE VAPES AND CARTRIDGES YOU LOVE FROM MOUNTBLISS<\/h2>\n\t\t\n