namespace WPForms\Integrations\Square;
* Compatibility with cURL extension.
* Square SDK requires cURL to be enabled to work correctly.
class CurlCompatibility {
* @return CurlCompatibility|null
public function init(): ?CurlCompatibility {
return ! $this->is_curl_loaded() ? $this : null;
public function hooks() {
// Warn the user about the fact that cURL is not loaded.
add_action( 'admin_notices', [ $this, 'display_curl_missing_notice' ] );
* Check if cURL is loaded.
private function is_curl_loaded(): bool {
return extension_loaded( 'curl' );
* Display wp-admin notification saying user to enable cURL extension for the Square payments.
public function display_curl_missing_notice() {
echo '<div class="notice notice-error"><p>';
esc_html_e( 'The WPForms Square payments require cURL to be enabled to work correctly.', 'wpforms-lite' );