namespace WPForms\Integrations\Square\Integrations;
use Elementor\Plugin as ElementorPlugin;
* Integration with Elementor.
class Elementor implements IntegrationInterface {
* Indicate whether current integration is allowed to load.
public function allow_load(): bool {
return (bool) did_action( 'elementor/loaded' );
public function hooks() {
add_action( 'elementor/frontend/after_enqueue_scripts', [ $this, 'enqueue_editor_assets' ] );
* Determine whether editor page is loaded.
public function is_editor_page(): bool {
// phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
return ( ! empty( $_POST['action'] ) && $_POST['action'] === 'elementor_ajax' ) || ( ! empty( $_GET['action'] ) && $_GET['action'] === 'elementor' );
public function enqueue_editor_assets() {
! class_exists( ElementorPlugin::class ) ||
empty( ElementorPlugin::instance()->preview ) ||
! ElementorPlugin::instance()->preview->is_preview_mode()
// Do not include styles if the "Include Form Styling > No Styles" is set.
if ( wpforms_setting( 'disable-css', '1' ) === '3' ) {
$min = wpforms_get_min_suffix();
'wpforms-square-elementor-integration-card-placeholder',
WPFORMS_PLUGIN_URL . "assets/css/integrations/square/wpforms-square-card-placeholder{$min}.css",