Woocommerce coupons created under Marketing -> Coupons are no longer being accepted at the checkout. When a user enters the coupon code and clicks "Apply voucher", the page refreshes, a loading icon briefly appears over the order summary, then nothing happens. The total amount does not change.
I've reverted back to Storefront and disabled all plugins: the problem still persists.
An error on the System Status page told me that SoapClient was not installed on my server, but I have now installed this and the problem still persists.
If required for testing, this is the store URL and the valid coupon code 77qk2a9y should apply a 10% discount to the whole order.
The output of my system status report is as follows:
`
### WordPress Environment ###
WordPress address (URL): https://logwisefirewood.co.uk
Site address (URL): https://logwisefirewood.co.uk
WC Version: 6.9.4
REST API Version: ✔ 6.9.4
WC Blocks Version: ✔ 8.3.3
Action Scheduler Version: ✔ 3.4.0
Log Directory Writable: ✔
WP Version: 6.0.2
WP Multisite: –
WP Memory Limit: 256 MB
WP Debug Mode: –
WP Cron: ✔
Language: en_GB
External object cache: –
### Server Environment ###
Server Info: Apache/2.4.54 (Ubuntu)
PHP Version: 7.4.3
PHP Post Max Size: 8 MB
PHP Time Limit: 30
PHP Max Input Vars: 1000
cURL Version: 7.69.0-DEV
OpenSSL/1.1.1f
SUHOSIN Installed: –
MySQL Version: 8.0.30-0ubuntu0.20.04.2
Max Upload Size: 8 MB
Default Timezone is UTC: ✔
fsockopen/cURL: ✔
SoapClient: ✔
DOMDocument: ✔
GZip: ✔
Multibyte String: ✔
Remote Post: ✔
Remote Get: ✔
### Database ###
WC Database Version: 6.9.4
WC Database Prefix: wp_
Total Database Size: 113.99MB
Database Data Size: 94.50MB
Database Index Size: 19.49MB
wp_woocommerce_sessions: Data: 2.02MB + Index: 0.08MB + Engine InnoDB
wp_woocommerce_api_keys: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_woocommerce_attribute_taxonomies: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_woocommerce_downloadable_product_permissions: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
wp_woocommerce_order_items: Data: 0.16MB + Index: 0.08MB + Engine InnoDB
wp_woocommerce_order_itemmeta: Data: 1.52MB + Index: 1.89MB + Engine InnoDB
wp_woocommerce_tax_rates: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
wp_woocommerce_tax_rate_locations: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
wp_woocommerce_shipping_zones: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_woocommerce_shipping_zone_locations: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
wp_woocommerce_shipping_zone_methods: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_woocommerce_payment_tokens: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_woocommerce_payment_tokenmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_woocommerce_log: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_actionscheduler_actions: Data: 0.34MB + Index: 0.45MB + Engine InnoDB
wp_actionscheduler_claims: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_actionscheduler_groups: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_actionscheduler_logs: Data: 0.25MB + Index: 0.20MB + Engine InnoDB
wp_commentmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_comments: Data: 1.52MB + Index: 0.53MB + Engine InnoDB
wp_commercekit_searches: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_commercekit_swatches_cache_count: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_commercekit_waitlist: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_commercekit_wishlist: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_commercekit_wishlist_items: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_e_events: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_e_notes: Data: 0.02MB + Index: 0.17MB + Engine InnoDB
wp_e_notes_users_relations: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_e_submissions: Data: 0.02MB + Index: 0.23MB + Engine InnoDB
wp_e_submissions_actions_log: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_e_submissions_values: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_ewwwio_images: Data: 4.52MB + Index: 5.03MB + Engine InnoDB
wp_ewwwio_queue: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_layerslider: Data: 1.50MB + Index: 0.00MB + Engine InnoDB
wp_layerslider_drafts: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_layerslider_revisions: Data: 11.52MB + Index: 0.00MB + Engine InnoDB
wp_links: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_mailchimp_carts: Data: 0.05MB + Index: 0.00MB + Engine InnoDB
wp_mailchimp_jobs: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_options: Data: 7.47MB + Index: 0.17MB + Engine InnoDB
wp_postmeta: Data: 12.52MB + Index: 6.80MB + Engine InnoDB
wp_posts: Data: 11.45MB + Index: 0.59MB + Engine InnoDB
wp_revslider_css: Data: 0.13MB + Index: 0.00MB + Engine InnoDB
wp_revslider_layer_animations: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_revslider_navigations: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_revslider_sliders: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_revslider_slides: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_revslider_static_slides: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_term_relationships: Data: 0.05MB + Index: 0.02MB + Engine InnoDB
wp_term_taxonomy: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_termmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_terms: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_usermeta: Data: 1.50MB + Index: 0.67MB + Engine InnoDB
wp_users: Data: 0.06MB + Index: 0.05MB + Engine InnoDB
wp_wc_admin_note_actions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wc_admin_notes: Data: 0.06MB + Index: 0.00MB + Engine InnoDB
wp_wc_category_lookup: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wc_customer_lookup: Data: 0.08MB + Index: 0.06MB + Engine InnoDB
wp_wc_download_log: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_wc_order_coupon_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_wc_order_product_lookup: Data: 0.19MB + Index: 0.23MB + Engine InnoDB
wp_wc_order_stats: Data: 0.13MB + Index: 0.11MB + Engine InnoDB
wp_wc_order_tax_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_wc_product_attributes_lookup: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wc_product_download_directories: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wc_product_meta_lookup: Data: 0.03MB + Index: 0.09MB + Engine InnoDB
wp_wc_rate_limits: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wc_reserved_stock: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wc_tax_rate_classes: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wc_webhooks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wcpdf_invoice_number: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfblockediplog: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfblocks7: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
wp_wfconfig: Data: 1.42MB + Index: 0.00MB + Engine InnoDB
wp_wfcrawlers: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wffilechanges: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wffilemods: Data: 8.52MB + Index: 0.00MB + Engine InnoDB
wp_wfhits: Data: 2.02MB + Index: 0.25MB + Engine InnoDB
wp_wfhoover: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wfissues: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
wp_wfknownfilelist: Data: 4.52MB + Index: 0.00MB + Engine InnoDB
wp_wflivetraffichuman: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wflocs: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wflogins: Data: 0.42MB + Index: 0.16MB + Engine InnoDB
wp_wfls_2fa_secrets: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_wfls_settings: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfnotifications: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfpendingissues: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
wp_wfpklist_template_data: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfreversecache: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wfsnipcache: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
wp_wfstatus: Data: 0.13MB + Index: 0.09MB + Engine InnoDB
wp_wftrafficrates: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_woocommerce_gc_activity: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
wp_woocommerce_gc_cards: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
wp_woocommerce_gc_cardsmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_wpmailsmtp_debug_events: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wpmailsmtp_tasks_meta: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wpml_mails: Data: 18.31MB + Index: 0.03MB + Engine MyISAM
wp_wpmm_subscribers: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wt_iew_action_history: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wt_iew_cron: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wt_iew_ftp: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_wt_iew_mapping_template: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
wp_yoast_indexable: Data: 0.27MB + Index: 0.13MB + Engine InnoDB
wp_yoast_indexable_hierarchy: Data: 0.05MB + Index: 0.05MB + Engine InnoDB
wp_yoast_migrations: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
wp_yoast_primary_term: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
wp_yoast_seo_links: Data: 0.09MB + Index: 0.06MB + Engine InnoDB
wp_yoast_seo_meta: Data: 0.14MB + Index: 0.00MB + Engine InnoDB
### Post Type Counts ###
amn_exact-metrics: 1
attachment: 887
carousels: 7
condition_group: 1
custom_css: 5
customize_changeset: 4
elementor_library: 16
em_reviews: 95
mc4wp-form: 1
nav_menu_item: 51
page: 48
popup_theme: 12
post: 44
postman_sent_mail: 250
product: 86
product_variation: 90
restriction: 1
revision: 696
shop_coupon: 39
shop_order: 834
shop_order_refund: 28
slides: 13
testimonials: 6
wp_global_styles: 1
wpcf7_contact_form: 2
### Security ###
Secure connection (HTTPS): ✔
Hide errors from visitors: ✔
### Active Plugins (23) ###
LayerSlider: by Kreatura Media – 7.5.0
Cache Enabler: by KeyCDN – 1.8.12
CommerceGurus Commercekit: by CommerceGurus – 2.0.4.1
Contact Form 7: by Takayuki Miyoshi – 5.6.3
Cookie Notice & Compliance for GDPR / CCPA: by Hu-manity.co – 2.4.1
Elementor Pro: by Elementor.com – 3.7.3
Elementor: by Elementor.com – 3.7.8
Kirki Customizer Framework: by David Vongries – 4.0.24
Lucas String Replace: by lucasstad – 2.0.5
Mailchimp for WooCommerce: by Mailchimp – 2.7.5
WooCommerce PDF Invoices, Packing Slips, Delivery Notes and Shipping Labels: by WebToffee – 3.0.6
Variation Swatches for WooCommerce: by Woosuite – 2.1.6
WooCommerce Address Validation: by SkyVerge – 2.9.0
WooCommerce Stripe Gateway: by WooCommerce – 6.8.0
WooCommerce Gift Cards: by WooCommerce – 1.10.2 (update to version 1.13.0 is available)
WooCommerce Product Dependencies: by SomewhereWarm – 1.2.7
WooCommerce Table Rate Shipping: by Bolder Elements – 3.6.6
WooCommerce: by Automattic – 6.9.4
Wordfence Security: by Wordfence – 7.7.1
WP Mail Logging: by Wysija – 1.10.4
WP Mail SMTP: by WPForms – 3.6.1
WP Maintenance Mode & Coming Soon: by Themeisle – 2.5.4
WPS Hide Login: by WPServeur
NicolasKulka
wpformation – 1.9.6
### Inactive Plugins (2) ###
Floating Reviews and Testimonials: by WiseLaw – 1.7
Images to WebP: by KubiQ – 2.0
### Dropin Plugins (1) ###
advanced-cache.php: advanced-cache.php
### Settings ###
API Enabled: ✔
Force SSL: –
Currency: GBP (£)
Currency Position: left
Thousand Separator: ,
Decimal Separator: .
Number of Decimals: 2
Taxonomies: Product Types: external (external)
grouped (grouped)
simple (simple)
variable (variable)
Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog)
exclude-from-search (exclude-from-search)
featured (featured)
outofstock (outofstock)
rated-1 (rated-1)
rated-2 (rated-2)
rated-3 (rated-3)
rated-4 (rated-4)
rated-5 (rated-5)
Connected to WooCommerce.com: ✔
Enforce Approved Product Download Directories: –
### WC Pages ###
Shop base: #15746 - /firewood_shop/
Basket: ❌ Page does not contain the [woocommerce_cart] shortcode or the woocommerce/cart block.
Checkout: #12036 - /checkout/
My account: #12037 - /my-account/
Terms and conditions: ❌ Page not set
### Theme ###
Name: Shoptimizer
Version: 2.5.5
Author URL: https://www.commercegurus.com/
Child Theme: ❌ – If you are modifying WooCommerce on a parent theme that you did not build
personally we recommend using a child theme. See: How to create a child theme
WooCommerce Support: ✔
### Templates ###
Overrides: –
### Gift Cards ###
Database Version: 1.10.2
Loopback Test: ✔
Task Queueing Test: ✔
### Admin ###
Enabled Features: activity-panels
analytics
coupons
customer-effort-score-tracks
experimental-products-task
experimental-import-products-task
experimental-fashion-sample-products
experimental-product-tour
shipping-smart-defaults
shipping-setting-tour
homescreen
marketing
mobile-app-banner
navigation
onboarding
onboarding-tasks
remote-inbox-notifications
remote-free-extensions
payment-gateway-suggestions
shipping-label-banner
subscriptions
store-alerts
transient-notices
wc-pay-promotion
wc-pay-welcome-page
Disabled Features: minified-js
new-product-management-experience
settings
Daily Cron: ✔ Next scheduled: 2022-10-12 10:56:33 +01:00
Options: ✔
Notes: 69
Onboarding: completed
### Address Validation ###
Active Provider: Loqate
Configured: ✔
Validate international addresses: Yes
Debug Mode: No
Geocode Addresses: No
Classify Addresses: No
Force Customer to look-up address via Postcode: No
### Action Scheduler ###
Canceled: 3
Oldest: 2022-09-20 14:31:10 +0100
Newest: 2022-10-11 09:32:33 +0100
Complete: 1,018
Oldest: 2022-09-11 09:51:48 +0100
Newest: 2022-10-11 12:01:34 +0100
Pending: 2
Oldest: 2022-10-12 04:30:03 +0100
Newest: 2022-10-12 11:37:07 +0100
### Status report information ###
Generated at: 2022-10-11 12:53:07 +01:00
`
Found it. I'm using a plugin called Lucas String Replace to change various text strings around the site (mainly to switch Americanisms in plugins to British English). I'd set up a rule to replace the word 'coupon' with the word 'voucher' - presumably this was breaking some code somewhere.
Silly error. Posting this answer in case someone else encounters the same issue in future.