{"id":342651,"date":"2026-07-19T16:19:18","date_gmt":"2026-07-19T16:19:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/first-order-coupons-for-woocommerce\/"},"modified":"2026-07-19T16:18:42","modified_gmt":"2026-07-19T16:18:42","slug":"codayman-first-order-coupons-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/codayman-first-order-coupons-for-woocommerce\/","author":15792723,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.2","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Codayman First Order Coupons for WooCommerce","header_author":"Saddam Hossain Azad","header_description":"Lets shop managers restrict any WooCommerce coupon so it can only be redeemed by customers who have never placed a previous order.","assets_banners_color":"e9d2b1","last_updated":"2026-07-19 16:18:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/saddam987020\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":54,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"saddam987020","date":"2026-07-19 16:18:42"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3613733,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3613733,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3613733,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3613733,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3613733,"resolution":"1","location":"assets","locale":"","width":1312,"height":778}},"screenshots":{"1":"The \"First order only\" checkbox on the coupon Usage restriction tab."}},"plugin_section":[],"plugin_tags":[331,207125,145196,272337,20589],"plugin_category":[45],"plugin_contributors":[272338],"plugin_business_model":[],"class_list":["post-342651","plugin","type-plugin","status-publish","hentry","plugin_tags-discount","plugin_tags-first-order-coupon","plugin_tags-first-order-discount","plugin_tags-new-customer-discount","plugin_tags-woocommerce-coupon","plugin_category-ecommerce","plugin_contributors-saddam987020","plugin_committers-saddam987020"],"banners":{"banner":"https:\/\/ps.w.org\/codayman-first-order-coupons-for-woocommerce\/assets\/banner-772x250.png?rev=3613733","banner_2x":"https:\/\/ps.w.org\/codayman-first-order-coupons-for-woocommerce\/assets\/banner-1544x500.png?rev=3613733","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/codayman-first-order-coupons-for-woocommerce\/assets\/icon-128x128.png?rev=3613733","icon_2x":"https:\/\/ps.w.org\/codayman-first-order-coupons-for-woocommerce\/assets\/icon-256x256.png?rev=3613733","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/codayman-first-order-coupons-for-woocommerce\/assets\/screenshot-1.png?rev=3613733","caption":"The \"First order only\" checkbox on the coupon Usage restriction tab."}],"raw_content":"<!--section=description-->\n<p>Codayman <strong>First Order Coupons for WooCommerce<\/strong> lets store owners create coupon codes that can only be redeemed by customers placing their very first order.<\/p>\n\n<p>WooCommerce includes powerful coupon functionality, but it doesn't provide a built-in way to restrict coupons exclusively to first-time customers. This plugin fills that gap with a lightweight, native WooCommerce solution that integrates directly into the existing coupon editor.<\/p>\n\n<p>Simply edit any WooCommerce coupon, enable the First order coupon only option, and the plugin will automatically validate whether the customer has previously placed a qualifying order.<\/p>\n\n<p>The validation works for both logged-in customers and guest checkouts, ensuring that first-order promotions are applied fairly without requiring additional configuration.<\/p>\n\n<p>The plugin is lightweight, translation-ready, HPOS compatible, follows WordPress Coding Standards, and integrates seamlessly with WooCommerce.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Adds a \"First order only\" checkbox to the existing <strong>Usage restriction<\/strong> tab on every coupon.<\/li>\n<li>Works for both logged-in customers and guest checkouts (matched by billing email).<\/li>\n<li>Compatible with WooCommerce High-Performance Order Storage (HPOS).<\/li>\n<li>Compatible with the WooCommerce Cart and Checkout blocks.<\/li>\n<li>Compatible with Classic Checkout.<\/li>\n<li>Supports unlimited coupons.<\/li>\n<li>Translation ready.<\/li>\n<li>Lightweight with minimal performance impact.<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<p>Order statuses that don't represent a completed or genuine purchase attempt (pending payment, failed, cancelled, and trashed) are ignored when checking a customer's order history, so an abandoned or failed order will not block the customer from later using a first-order coupon. You can adjust which statuses are excluded with the <code>focw_excluded_order_statuses<\/code> filter.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/codayman-first-order-coupons-for-woocommerce<\/code> directory, or install the plugin directly through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Make sure WooCommerce is installed and active.<\/li>\n<li>Go to <strong>Marketing \u2192 Coupons<\/strong> (or <strong>WooCommerce \u2192 Coupons<\/strong>), create or edit a coupon, open the <strong>Usage restriction<\/strong> tab, and check <strong>First order only<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20for%20guest%20checkouts%3F\"><h3>Does this work for guest checkouts?<\/h3><\/dt>\n<dd><p>Yes. The plugin checks the billing email entered at checkout against past orders in the store, in addition to checking the logged-in customer's account and email when applicable.<\/p><\/dd>\n<dt id=\"which%20order%20statuses%20count%20as%20a%20%22previous%20order%22%3F\"><h3>Which order statuses count as a \"previous order\"?<\/h3><\/dt>\n<dd><p>Any status except Pending payment, Failed, Cancelled, and Trash. This can be customized with the <code>focw_excluded_order_statuses<\/code> PHP filter.<\/p><\/dd>\n<dt id=\"does%20this%20create%20any%20new%20database%20tables%3F\"><h3>Does this create any new database tables?<\/h3><\/dt>\n<dd><p>No. The plugin stores a single piece of coupon meta data using WooCommerce's own coupon CRUD, and reads existing order data through <code>wc_get_orders()<\/code>.<\/p><\/dd>\n<dt id=\"is%20this%20compatible%20with%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Is this compatible with High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes, the plugin declares compatibility and only queries orders through the WooCommerce CRUD\/query APIs.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Restrict any WooCommerce coupon so it can only be redeemed by customers placing their first order.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/342651","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=342651"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/saddam987020"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=342651"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=342651"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=342651"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=342651"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=342651"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=342651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}