import React, { FC, useState, useEffect } from "react"; import Title from "../../core/Title"; import Icons from "../../icons"; import ReactTooltip from "react-tooltip"; import WooIntegration from "../../images/woo_integration.png"; import { toBoolean, isWcLoaded, isWcInstalled, isWCECTPlacement, getNonce, getAjaxNonce, } from "./../../Helpers"; type Props = { handleSingleIntegration: any; store: any; setStore: any; }; const WooCommerce: FC = ({ handleSingleIntegration, store, setStore, }) => { const [installed, setInstall] = useState(isWcInstalled()); const [loaded, setLoad] = useState(isWcLoaded()); const [loader, setLoader] = useState(false); const [placement, setPlacement] = useState(isWCECTPlacement()); const [collapse, setCollapse] = useState( toBoolean(localStorage.getItem("ect_wc_integration_collapse")) ); const handleCollapse = (value) => { setCollapse(value); localStorage.setItem("ect_wc_integration_collapse", value); }; const handleSelectChange = (e) => { setPlacement(e.target.value); localStorage.setItem("wcPlacement", e.target.value); wp.ajax.send("ect_placement", { data: { nonce: getNonce(), selected_option: e.target.value, form: "woocommerce", }, success(response) { console.log(response); }, error(err) { console.error(err); }, }); }; const handleStatus = (e): void => { setStore({ ...store, integrations: { ...store.integrations, [e.target.name]: e.target.checked, }, }); if (!collapse && e.target.checked) { setCollapse(true); } }; const handlePluginInstall = (e) => { e.preventDefault(); setLoader(true); wp.ajax.send("wp_ajax_install_plugin", { data: { _ajax_nonce: getAjaxNonce(), slug: "woocommerce", }, success() { setLoader(false); setInstall(true); }, error() { setInstall(false); }, }); }; const handlePluginActive = (e) => { e.preventDefault(); setLoader(true); wp.ajax.send("active_plugin", { data: { nonce: getNonce(), slug: "woocommerce", }, success() { setLoader(false); setLoad(true); }, error() { setLoad(true); setLoader(false); }, }); }; useEffect(() => { const wcPlacement = localStorage.getItem("wcPlacement"); if (wcPlacement) { setPlacement(wcPlacement); } }, [placement]); return ( <>
Woo-Commerce Logo
<h3>WooCommerce Forms</h3> {!installed && (
{Icons.info_icon} Please install WooCommerce first!
)} {installed && !loaded && (
{Icons.info_icon} Please activate WooCommerce first!
)} {installed && loaded && toBoolean( store?.integrations?.woocommerce && store.integrations.woocommerce.toString() ) &&

Turnstile is enabled for

} {collapse ? ( <> {!installed || !loaded ? ( <>
  • My Account Login
  • WooCommerce Lost/Reset Password
) : ( <>
{/* ECT Location for WooCommerce Checkout */} {store?.fields?.woocommerce?.includes("wc_checkout") && ( <>
{installed && loaded && toBoolean( store?.integrations?.woocommerce && store.integrations.woocommerce.toString() ) && ( <>

Widget Location {Icons.tooltip_icon}

)}
)}
)} ) : null} {collapse ? ( ) : ( )}
{installed && loaded && ( )} {!installed && (
handlePluginInstall(e)}> {loader ? ( ) : ( )}
)} {installed && !loaded && (
handlePluginActive(e)}> {loader ? ( ) : ( )}
)}
); }; export default WooCommerce;