WPPizza – Square Gateway

Description

Square Gateway for WPPizza – Enables Square Payments for orders using the WordPress WPPizza Plugin

You can choose between inline credit card payment collection directly on your WPPizza order page or redirect to Square’s hosted payment pages (checkout)

Note: Square is also known as SquareUp. However, this is not to be confused with Squarespace which is something entirely different and not supported by this plugin

Requirements

  • Php 7.4+, WPPizza 3.13.4+
  • You must have a Square (aka SquareUp) account https://www.square.com/
  • The currency set in WPPizza->Order Settings must be one of the following : ‘USD’, ‘CAD’, ‘JPY’, ‘AUD’, ‘GBP’ (though ‘EUR’ is also implemented in anticipation of Square supporting it at some point in the future)
  • For Live Transaction: you MUST set your Production Application ID, Production Access Token, and Production Location ID
  • For Test Transaction: you MUST set your Sandbox Application ID, Sandbox Access Token, and Sandbox Location ID
  • If you are using Square’s hosted payment pages (checkout) implementation you MUST setup the following webhook url in your Square Account: http(s)://www.your-domain.com/?wppizza-listener=square (live and test mode) replacing “http(s)://www.your-domain.com” as appropriate for your site
  • Note: an SSL certificate is required when displaying credit card fields inline on the order page (default setting), but not if using Square’s hosted payment pages (checkout) implementation

Setup

  • Install by uploading the zip file in the normal wordpress manner from withing the WordPress plugin screen (add new->upload) and activate
  • Login to your Square developer dashboard
  • Create a new application with any name you like (see screenshot)
  • Once you have create this application, make a note of your Application ID, Access Token and Location ID for Sandbox and Production settings (screenshot, screenshot)
  • If you want to use Square’s hosted payment page instead of collecting credit card information inline, you must also set a Webhook endpoint URL (screenshot) to http(s)://www.your-domain.com/?wppizza-listener=square (sandbox and production mode) replacing “http(s)://www.your-domain.com” as appropriate for your site
  • Set the events this Webhook should receive to “Select All” or – at a minimum – to
    “payment.updated”, “refund.updated”

    and save

  • Be aware that if you do NOT set events received to “Select All”, you will have to manually add any events that may be added to the gateway implementation in the future
  • If you set the plugin settings to receive credit card information inline you can ignore the webhook settings – or better still – delete the webhook altogether to save yourself some server resources.
  • Now go to WPPizza->gateways->Square and enter the “Application ID”, “Access Token” and “Location ID” for Sandbox and Prodcution settings (Toggle the “Test” checkbox to switch between Live / Sandbox settings).
  • Set all other options as required and save.

Important Note:

Square is also known as SquareUp. However, Squarespace on the other hand is something entirely different and not supported by this plugin

Troubleshooting

  • If you have problems, please enable debug and check for logfiles in wppizza/logs and contact me at : dev[at]wp-pizza.com with the domain you are having problems with. Please attach all your logfiles (if any) that reside under the gateway logs directory (wppizza v2.x) or wppizza/logs directory (wppizza v3x)

Screenshots

(click images for larger versions)

Frontend (hosted/redirect)
Frontend (inline)
Admin panel