Developers › Filters
WordPress Filters Reference
Every filter in WP EasyCart, PRO and the extensions: what value it lets you change and what it passes to your code. 23 parts.
Quick links
Where to find it:WP Admin › functions.php
Before you start
How filters work
What one is and how to read the list.
How filters work
Change a value before WP EasyCart uses it
What a filter is. Before WP EasyCart uses a value, such as a list of columns, an email subject or a label, it passes the value through any filters you added. Your function can change it and hand it back. To react to an event instead, use an action.
Where to put your code. In a small plugin or your child theme’s functions.php. Never edit the WP EasyCart files; an update would remove your change.
A first example.add_filter( 'wp_easycart_admin_subscriber_list_columns', 'my_columns' );function my_columns( $columns ) { return $columns; }
Always return a value. A filter function must return the value it received, changed or not, or the setting it controls ends up empty. The first parameter in each entry is the value you receive and return; the rest are extra information. To receive extra values, add a count: add_filter( 'hook_name', 'my_function', 10, 2 );.
💡 Note: Connecting another system, such as a warehouse, an ERP or a marketplace, rather than changing the store from inside WordPress? Use the WP EasyCart API and its reference at developer.wpeasycart.com.
Reading the list
Names, tags and where hooks fire
Names. Names start with wp_easycart_ or wpeasycart_ (two shipping filters start with ecv2_). A name with a word in braces, such as wpeasycart_admin_order_{type}_update, stands for a family of hooks: replace the braces with the value described in the entry.
Tags. An entry with no tag is in the free WP EasyCart plugin. A PRO tag means it works only when WP EasyCart PRO is active. Other tags name the extension that provides it.
Fires in. The plugin file, and the function, where the hook is called. Use it to understand the context or to search the plugin when you need more detail. Hooks in admin screens work only in the WordPress admin.
Areas. The list is grouped by what the hook is about: cart, orders, products, admin screens and so on. Use your browser’s find box to look for a name.
💡 Note: Looking to run code when something happens instead of changing a value? See the WordPress Action Hooks Reference.
The filters
By area
1145 filters, grouped by what they are about.
Cart and checkout
Grouped by what they are about
88 filterswp_easycart_abandoned_cart_restore_targetFilters where an abandoned cart recovery link lands when the cart held a subscription. The default is the subscription page for the product (with its usage level).
$url (string) The subscription page URL.$row (array) The abandoned cart record.wp_easycart_add_to_cart_link_automatedFilters whether an ?ec_add_to_cart= or ?ec_action=addtocart request came from no shopper, in which case nothing is added to a cart.
$reason (string) prefetch (answered with a 503), bot (sent to the product page) or ” (a shopper).$agent (string) The user agent, lower case.wp_easycart_add_to_cart_link_max_quantityFilters the largest quantity an ?ec_add_to_cart= or ?ec_action=addtocart link can add. Default 20; the result is kept between 1 and 999.
$quantity (int) The largest quantity (20).wp_easycart_add_to_cart_optional_always_addFilters whether adding a product always inserts a new cart row instead of merging with a matching existing cart line.
$always_add (bool) False by default; true forces a new cart row.$product_id (int) ID of the product being added.wp_easycart_add_to_cart_quantityFilters the quantity stored in the cart when a product is added.
$quantity (int) Quantity being added.$product_id (int) ID of the product being added.wp_easycart_add_to_cart_return_url_cartFilters the URL the shopper is sent to after adding a product to the cart, when they are redirected to the cart page.
$url (string) Cart page URL.$tempcart_id (int) ID of the cart row that was added; 0 when not known.$product_id (int) ID of the product added.wp_easycart_add_to_cart_return_url_productFilters the URL the shopper is sent back to after adding a product, when they stay on the product page.
$url (string) Return URL with the ec_store_success=addtocart and model arguments appended.$tempcart_id (int) ID of the cart row that was added.$product_id (int) ID of the product added.wp_easycart_advanced_option_items_add_to_cartFilters the option items of an advanced option set when reading the shopper’s selections during add to cart.
$option_items (array) the option set’s option item objects$option_id (int) the option set idwp_easycart_advanced_options_add_to_cartFilters the advanced option values collected for a product being added to the cart.
$option_vals (array) the collected option values$product_id (int) the product id$tempcart_id (int) the temporary cart idwp_easycart_allow_checkout_detailsFilters whether the checkout details step is shown. Return a falsy value to stop it displaying.
$allow (int) 1 to allow, default 1wp_easycart_allow_paymentFilters whether the payment step is shown. Return a falsy value to stop it displaying.
$allow (int) 1 to allow, default 1wp_easycart_allow_paypal_expressFilters whether PayPal Express and digital wallet options, such as Venmo and Pay Later, are allowed on the cart and checkout.
$allow (bool) false by defaultwp_easycart_cart_3dsecure_linkFilters the URL of the 3D Secure cart page.
$url (string) the cart page URL with ec_page=3dsecurewp_easycart_cart_checkout_info_linkFilters the URL of the checkout information step.
$url (string) the cart page URL with ec_page=checkout_infowp_easycart_cart_checkout_payment_linkFilters the URL of the checkout payment step.
$url (string) the cart page URL with ec_page=checkout_paymentwp_easycart_cart_checkout_paypal_authorized_linkFilters the URL of the checkout PayPal authorized step.
$url (string) the cart page URL with ec_page=checkout_paypal_authorizedwp_easycart_cart_checkout_shipping_linkFilters the URL of the checkout shipping step.
$url (string) the cart page URL with ec_page=checkout_shippingwp_easycart_cart_checkout_submit_order_linkFilters the URL of the checkout submit order step.
$url (string) the cart page URL with ec_page=checkout_submit_orderwp_easycart_cart_checkout_success_linkFilters the URL of the checkout success page.
$url (string) the cart page URL with ec_page=checkout_successwp_easycart_cart_cookie_httponlyFilters whether the cart cookie is sent with the HttpOnly flag.
$httponly (bool) true by defaultwp_easycart_cart_cookie_samesiteFilters the SameSite attribute of the cart cookie.
$samesite (string) Lax by defaultwp_easycart_cart_invoice_linkFilters the URL of the invoice page.
$url (string) the cart page URL with ec_page=invoicewp_easycart_cart_item_total_priceFilters the total price of a cart item, both the base total and the currency-converted total, when the cart item loads.
$total_price (float) the item total price$cartitem_id (int) the cart item id$product_id (int) the product idwp_easycart_cart_item_unit_price_discounted_displayFilters the discounted unit price display string for a cart item.
$display (string) formatted discounted unit price plus any extra label$product_id (int) the product idwp_easycart_cart_item_unit_price_displayFilters the unit price shown for a line item on the admin order details screen and the account receipt.
$unit_price (string|float) the unit price$product_id (int) the product idwp_easycart_cart_line_availableFilters whether a cart line can be bought for the delivery address; return false or a WP_Error to mark the line unavailable, with the error message shown to the shopper.
$available (bool|WP_Error) Whether the line is available; starts as true.$cart_item (ec_cartitem) The cart line being checked.$address (array) Delivery address: country, state, zip, city, address1, address2, phone, name.wp_easycart_cart_linkFilters the URL of the cart page returned by wpeasycart_links()->get_cart_page() when no specific cart step is requested.
$cart_page (string) The cart page URL.wp_easycart_cart_page_urlFilters the cart page URL when WP EasyCart loads a page and when the account page is set up.
$cart_page (string) The cart page URL.wp_easycart_cart_process_affirm_linkFilters the URL of the cart’s process Affirm step (ec_page=process_affirm).
$url (string) The cart page URL with ec_page=process_affirm.wp_easycart_cart_quantity_messageFilters what the cart says about a quantity limit, such as Only 3 in stock or You can buy up to 5 of this item, when a quantity change is cut back and in the notes beside a line’s quantity box.
$text (string) The message, plain text.$reason (string) stock, max or min.$args (array) The numbers behind it: stock, other (units of the product on other cart lines), max and min.wp_easycart_cart_screen_totalsFilters the discount and Estimated total rows under the subtotal on the cart screen, when the cart is drawn and again after each cart change.
$totals (array) discount, discount_display, discount_show, estimate, estimate_display and estimate_show.$this (ec_cartpage) The cart page.wp_easycart_cart_stateFilters the mini-cart state array (item count, subtotal and items as plain text and URLs) returned for the visitor’s cart.
$state (array) Count, subtotal_display and items, plain text and URLs only.$cart (ec_cart|null) The visitor’s cart, or null when the visitor has no cart session.wp_easycart_cart_subscription_info_linkFilters the URL of the cart’s subscription info step (ec_page=subscription_info).
$url (string) The cart page URL with ec_page=subscription_info.wp_easycart_cart_third_party_linkFilters the URL of the cart’s third party payment step (ec_page=third_party).
$url (string) The cart page URL with ec_page=third_party.wp_easycart_cart_update_responseFilters the cart data sent back to the browser after a cart or checkout change, such as a quantity update, a removed item, a coupon or a shipping method, so extensions can add to what the page redraws.
array(...) (array) cart, order_totals, items_total, weight_total, has_discount, has_backorder, stripe_wallet, square_wallet and summary_lines (the one-page order summary’s lines, or false).wp_easycart_catalog_displayFilters whether the store is shown as a catalog (vacation mode), in which case add to cart links open the product page instead of adding the item.
$display_as_catalog (mixed) The Display as catalog setting; a truthy value turns the store into a catalog.wp_easycart_checkout_account_requiredFilters whether a checkout needs an account. Default true when the cart holds a download, a purchase that opens a limited page (Limit Access), or guest checkout is off.
$required (bool) Whether an account is required.$cartpage (ec_cartpage) The checkout.wp_easycart_checkout_field_foldsFilters whether an optional address field starts folded behind its “+ Add” link on the classic checkout. Default true while the field is empty.
$fold (bool) Whether the field is folded.$side (string) billing or shipping.$field (string) address2 or company_name.wp_easycart_checkout_field_placement_shown PROFilters where a custom checkout field’s placement is really printed for the current cart.
$where (string) The resolved placement, or an empty string.$placement (string) The placement chosen for the field.$cartpage (object|null) The ec_cartpage object.wp_easycart_checkout_field_types PROFilters the list of checkout field types available in the checkout fields builder; rendering an added type is done through wp_easycart_checkout_field_html.
$types (array) Field type slug => settings.wp_easycart_checkout_fields PROFilters the custom checkout fields returned for the requested statuses.
$fields (array) Field key => field definition.$statuses The field statuses that were asked for.wp_easycart_checkout_fields_licensed PROFilters whether the custom checkout fields feature is licensed.
$licensed (bool) Whether checkout fields are licensed.wp_easycart_checkout_phone_requiredFilters whether every order needs a phone number. Default true when Settings > Checkout both collects and requires the phone.
$required (bool) Whether a phone is required.wp_easycart_checkout_policy_linksFilters whether the foot of checkout links the store’s terms, privacy and returns pages (Settings > Checkout).
$on (bool) The ec_option_checkout_policy_links setting.wp_easycart_checkout_policy_pagesFilters the store’s policy pages linked at the foot of checkout.
$out (array) terms, privacy and returns => label, url, post_id, status and source.wp_easycart_checkout_shipping_stepFilters whether the classic checkout’s steps line names a shipping step.
$ships (bool) Whether the order goes through the shipping step.$cartpage (ec_cartpage) The checkout.wp_easycart_checkout_stepsFilters the classic checkout’s steps line before it is printed.
$steps (array) The steps in order: key => array( title, address ).$current (string) The step on show.$cartpage (ec_cartpage) The checkout.wp_easycart_checkout_terms_requiredFilters whether every order needs the terms box ticked. Default from Settings > Checkout > Require customers to agree to the terms.
$required (bool) Whether the terms must be accepted.wp_easycart_express_button_heightFilters the height of the express checkout buttons in pixels. Default 48; the result is kept between 40 and 55.
$height (int) The height (48).wp_easycart_express_button_radiusFilters the corner radius of the express checkout buttons in pixels. Default 4, or half the height for pill-shaped PayPal buttons; the result is kept between 0 and half the height.
$radius (int) The radius.$height (int) The buttons’ height.wp_easycart_invalid_checkout_details_urlFilters the URL a shopper is sent to when checkout details are invalid, such as an invalid shipping choice or an order error.
$url (string) cart page URL with an ec_cart_error query argumentwp_easycart_onepage_checkout PROFilters whether the one-page checkout is active.
$active (bool) false by defaultwp_easycart_onepage_incompatibleFilters the list of payment method names that keep a store on the classic checkout instead of the one-page checkout.
$names (string[]) names of incompatible payment methodswp_easycart_onepage_summary_editableFilters whether shoppers can change quantities and remove items in the one-page checkout’s order summary; return false to show the lines as read-only.
$edit (bool) The setting Items can be changed on the one-page checkout.$cart (ec_cart) The cart.wp_easycart_order_extras_placement PROFilters where the PO number and gift options are asked at checkout.
$placements (array) po and gift keys, each set to order_notes, delivery or reviewwp_easycart_product_can_add_to_cartFilters whether a shopper may put a product in the cart. Every add-to-cart path asks, and checkout asks again for lines already in the cart; return true, or a WP_Error to refuse.
$answer (true|WP_Error) The store’s answer; error codes are product_missing, product_inactive, store_restricted, product_role, login_for_pricing, catalog_mode, inquiry_mode and store_catalog.$row (object|false) The product row: product_id, model_number, post_id, price, is_donation, activate_in_store, role_id, login_for_pricing, login_for_pricing_user_level, catalog_mode and inquiry_mode.$user (object|null) The shopper’s ec_user.wp_easycart_return_store_urlFilters the URL of the return to store link in the cart.
$url (string) The store URL, or the custom return URL from settings when set.wp_easycart_shipping_wait_enabledFilters whether the cart page and the classic checkout’s details step leave shipping out of the totals they show until the shopper chooses a rate. On with the setting Hide rates until an address is entered. What checkout charges never changes.
$on (bool) The setting.wp_easycart_shipping_wait_textFilters the words in the Shipping line before a rate is chosen.
$text (string) The words.wp_easycart_shipping_waitsFilters whether one place leaves shipping out of its shown totals right now.
$waits (bool) The rule.$place (string) cart or checkout_info.$cartpage (ec_cartpage) The cart.wp_easycart_update_item_quantityFilters the quantity saved when a cart item’s quantity is updated.
$quantity (int) New quantity, never below 0.$tempcart_id (int) Cart item id.$session_id (string) Cart session id.$product_id (int) Product id.wpeasycart_abandoned_cart_capture_skipFilters whether an abandoned cart session is skipped instead of captured for reminder emails.
$skip (bool) Default false.$session_id (string) Cart session id.$cart_data (object) The ec_tempcart_data row for the session.wpeasycart_allowed_file_upload_typesFilters the list of MIME types shoppers may upload as customer files.
$types (array) Allowed MIME types, such as image/jpeg, application/pdf and zip types.wpeasycart_cart_card_errorFilters the saved card decline text before the shopper sees it on the cart page.
$card_error (string) Card decline text stored from the payment gateway.wpeasycart_cart_errorsFilters the map of cart error codes to the notice text shown to the shopper.
$errors (array) Error code => notice text, such as email_exists, payment_failed or minimum_order.wpeasycart_cartitem_image1Filters the main image URL for a cart item, in the cart and in abandoned cart emails.
$image1 (string) Cart item image URL.$product_id (int) Product id.$cartitem_id (int) Cart item id, or 0 if unknown.wpeasycart_cartitem_image1_optionitemFilters the option item image URL for a cart item, in the cart and in abandoned cart emails.
$image1_optionitem (string) Option item image URL or empty string.$product_id (int) Product id.$cartitem_id (int) Cart item id, or 0 if unknown.wpeasycart_checkout_error_entryFilters one checkout problem entry before it is returned to the checkout page.
$entry (array) Problem entry with code and message keys.$code (string) The problem’s code.$cartpage (ec_cartpage) The checkout page object.wpeasycart_checkout_order_errorsFilters the list of error codes found when a shopper submits the order.
$errors (array) Error codes; add a notice for a new code through wpeasycart_cart_errors.$cartpage (ec_cartpage) The checkout page object.wpeasycart_checkout_password_js_functionFilters the JavaScript run when the shopper clicks the submit button on the checkout details form.
$js_function (string) JavaScript for the onclick attribute; defaults to ‘return ec_validate_cart_details( );’.wpeasycart_checkout_protection_client_ipFilters the client IP address that checkout protection uses for a request.
$ip (string) The address chosen for the request.$remote (string) The REMOTE_ADDR server value.wpeasycart_checkout_protection_cloudflare_rangesFilters the address ranges checkout protection trusts to send the CF-Connecting-IP (Cloudflare) header.
$ranges (array) CIDR ranges of trusted proxies.wpeasycart_checkout_protection_contact_emailFilters the email address shoppers are told to contact when their payments are paused by checkout protection.
$email (string) Contact email address.wpeasycart_checkout_protection_limitsFilters the numeric limits checkout protection applies for a protection level.
$limits (array) Limits for the level.$level (string) Protection level.wpeasycart_checkout_protection_settingsFilters the resolved checkout protection settings.
$settings (array) Resolved checkout protection settings.wpeasycart_checkout_step_errorLets a plugin block a checkout step by returning an error, which sends the shopper back to a checkout page.
$error (array|null) Null by default; return array( ‘code’ => notice code, ‘page’ => page to go back to ) to block the step.$step (string) Checkout step: information, shipping or payment.$cartpage (ec_cartpage) The checkout page object.wpeasycart_express_checkout_allowedFilters whether express checkout buttons may be shown.
$allowed (bool) Whether express checkout is allowed; defaults to true.$context (string) Where it is asked, such as checkout or square.$cartpage (ec_cartpage) The cart page object.wpeasycart_inquiry_blocklistFilters the list of blocked terms the inquiry form guard checks messages against.
$blocklist (array) Lowercase blocked terms.wpeasycart_inquiry_client_ipFilters the client IP address the product inquiry form guard uses.
$ip (string) The address chosen for the request.$remote (string) The REMOTE_ADDR server value.wpeasycart_inquiry_error_messageFilters the error message shown when the inquiry form guard rejects an inquiry.
$text (string) Message text.$reason (string) Reason the inquiry was rejected.$settings (array) Inquiry guard settings.wpeasycart_inquiry_guard_resultFilters the inquiry guard result, letting a plugin accept or reject an inquiry.
$reason (string) Rejection reason, or empty when the inquiry passed the checks.$context (array) Array with product_id, name, email, message and settings.wpeasycart_inquiry_guard_settingsFilters the product inquiry guard settings such as length, link limit and blocklist.
$settings (array) Inquiry guard settings.wpeasycart_minimum_order_totalFilters the minimum order total a cart must reach before checkout.
$minimum (float|string) Value of the ec_option_minimum_order_total setting.wpeasycart_restrict_cart_onlyFilters whether the store shows only the cart page and blocks the checkout pages.
$restrict (bool) False by default; return true to restrict shoppers to the cart.wpeasycart_show_checkout_buttonFilters whether the Checkout button is shown on the cart page.
$show (bool) Whether to show the button; defaults to true.wpeasycart_valid_cart_errorsFilters the list of cart error codes that are valid to show on the cart page.
$error_codes (array) Valid error code strings, such as email_exists, login_failed and payment_failed.wpeasycart_validate_checkout_dataFilters whether the checkout contact and billing details are valid.
$data_validated (bool) Result of the built-in checks.$user (ec_user) The current customer object.wpeasycart_validate_submit_order_dataFilters whether the order data is valid when the shopper submits the order.
$data_validated (bool) Result of the built-in checks; false fails the order.$user (ec_user) The current customer object.Products
Grouped by what they are about
127 filterswp_easycart_admin_ai_product_factsFilters the product facts Write with AI sends with its prompt in the product editor.
$facts (array) The facts.$row (object) The product row.wp_easycart_admin_ai_readyFilters whether Write with AI can write: true when the site’s AI service is set up for text.
$out['ready'] (bool) The WordPress AI Client’s answer.wp_easycart_admin_ai_textFilters the text Write with AI returns for a product field. Return a string to answer without the site’s AI service; null lets WP EasyCart ask it.
null (string|WP_Error|null) The text, or null.$prompt (string) What the AI would be asked.$kind (string) description, short_description, excerpt, specifications, seo_description, seo_title or seo_keywords.$facts (array) The product’s facts.wp_easycart_admin_free_image_slot_limitFilters how many product image slots the free edition allows, in the media editor and when images are saved.
$limit (int) Number of image slots available in the free edition; defaults to 2.wp_easycart_admin_free_option_set_limitFilters how many option sets the free edition allows on a product.
$limit (int) Maximum option sets per product in the free edition; defaults to 2.wp_easycart_admin_optionitem_quantity_add_clickFilters the JavaScript function called when Add New is clicked in the product option item quantity panel; Pro replaces the upgrade prompt.
$action (string) Name of the JavaScript function to call; defaults to show_pro_required.wp_easycart_admin_optionitem_quantity_delete_clickFilters the JavaScript function called when Delete is clicked in the product option item quantity panel; Pro replaces the upgrade prompt.
$action (string) Name of the JavaScript function to call; defaults to show_pro_required.wp_easycart_admin_optionitem_quantity_update_clickFilters the JavaScript function called when Update is clicked in the product option item quantity panel; Pro replaces the upgrade prompt.
$action (string) Name of the JavaScript function to call; defaults to show_pro_required.wp_easycart_admin_product_custom_price_label_changeFilters the JavaScript onchange handler for the custom price label dropdown on the admin product pricing form; Pro replaces the upgrade prompt.
$onchange (string) JavaScript function name; defaults to show_pro_required.wp_easycart_admin_product_custom_price_label_saveFilters the custom price label type saved for a product; Pro returns the posted value, and the default of 0 leaves the label disabled.
$value (int) Value to save; 0 by default.$enable_price_label (int) Price label type posted from the admin form.wp_easycart_admin_product_details_basic_fields_listFilters the basic field definitions of the product editor before they are printed: the Product details and Description cards in Basics, the Price card in Pricing, and the summary column’s Page address and Manufacturer.
$fields (array) Field definitions, each an array with keys such as name, type, label and required.$product (object) Product being edited.wp_easycart_admin_product_details_categories_fields_listFilters the field definitions of the product editor’s Categories field (the Organization card in the summary column).
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_customs_fields_listFilters the customs field definitions of the product editor’s Shipping section: Packs in, HS tariff code, Country of origin and Customs description.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_deconetwork_fields_listFilters the field definitions of the Deconetwork card in the product editor’s Type settings section.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_featured_products_fields_listFilters the field definitions of the Featured products card in the product editor’s Storefront section.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_general_options_fields_listFilters the field definitions behind the product editor’s general option fields, such as Show on store page, Show in the specials widget, the product type switches and the purchase rules, before they are printed in the Storefront, Type settings and Search & marketing sections and the summary column.
array(...) (array) Field definitions: name, type, label and more.$this->product (object) The product being edited.wp_easycart_admin_product_details_google_merchant_fields_list PROFilters the field definitions of the Google Merchant card in the product editor’s Search & marketing section (Google Shopping tab) before they are printed.
$fields (array) field definitions for the Google Merchant sectionwp_easycart_admin_product_details_menus_fields_listFilters the field definitions of the Store menus card in the product editor’s Storefront section.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_order_completed_details_note_fields_listFilters the field definitions of the Order details note in the product editor’s After purchase section.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_order_completed_email_note_fields_listFilters the field definitions of the Order email note in the product editor’s After purchase section.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_order_completed_note_fields_listFilters the field definitions of the Order confirmation page note in the product editor’s After purchase section.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_packaging_fields_listFilters the weight and size field definitions (Weight, Width, Height, Length) of the product editor’s Shipping section, under Package.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_pricing_fields_listFilters the field definitions of the product editor’s Pricing section: the Cost and price display card, and the Volume and B2B prices card (Volume Pricing and B2B Pricing).
$fields (array) field definitions for the pricing fields$product (object) the product being editedwp_easycart_admin_product_details_quantity_fields_listFilters the field definitions of the Stock and order limits card in the product editor’s Inventory section.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_seo_fields_listFilters the field definitions of the Search engine listing card in the product editor’s Search & marketing section.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_short_description_fields_listFilters the field definitions of the Short description card in the product editor’s Basics section.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_specifications_fields_listFilters the field definitions of the Specifications card in the product editor’s Basics section.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_tags_fields_listFilters the field definitions of the Badges and image effects card in the product editor’s Design section, such as the hover effect.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_details_user_rolesFilters the user roles offered in the product editor’s Who can see it choice and in the products list’s role pricing options.
$user_roles (array) role options, each an object with id and value set to the role labelwp_easycart_admin_product_details_v2_lock_mapFilters which inputs of each product editor section are locked when another service manages the product’s fields, such as a fulfillment partner or Square.
array(...) (array) section => managed field => input ids, or true for the whole section.wp_easycart_admin_product_details_v2_tab_groupsFilters the groups of the product editor’s section list: Essentials, Catalog, Advanced and Insights.
$tab_groups (array) group slug => labelwp_easycart_admin_product_details_v2_tabsFilters the product editor’s sections (Basics, Media, Pricing and so on), with each one’s label, icon, group and description.
$tabs (array) tab slug => array with label, icon, group, desc$product (object) the product being editedwp_easycart_admin_product_editor_prefsFilters the product editor choices saved for one admin user: Page or Focus view, which sections are folded, whether the EasyCart menu is folded to icons, and whether the tip was seen.
$prefs (array) view (page or focus), collapsed (section key => bool), menu (mini or full) and tip (bool).$user_id (int) The user.wp_easycart_admin_product_list_columnsFilters the columns shown in the admin product list table.
$columns (array) column definitions with name, label, format, width and visibility keyswp_easycart_admin_product_list_filtersFilters the filter controls available above the admin product list table.
$filters (array) filter definitions for the product listwp_easycart_admin_product_tax_factsFilters what the store charges in tax as the product editor’s Tax section and summary card describe it.
$facts (array) The tax facts.$product (object) The product being edited.wp_easycart_admin_product_type_labelsFilters the names of the product type switches, used to describe a product in the editor’s summary column, such as Subscription + Gift card, or Standard product when none is on.
array(...) (array) Switch id => label, such as is_subscription_item => Subscription and is_download => Digital download.wp_easycart_admin_product_type_sectionsFilters the name of the product editor’s type section for each product type.
$sections (array) Type key => rail, title and desc.wp_easycart_admin_product_typesFilters the product types offered by the Product type choice in the product editor’s summary column and by the products list’s Product type filter. A type you add needs a checkbox with its flag as the id in the editor, and its flag must be an ec_product column for the filter to find it.
$types (array) key => label, flag (the type’s ec_product column, empty for none), ships (1, 0 or null to leave shipping alone), pro (needs WP EasyCart PRO), help and icon (a dashicon).wp_easycart_admin_v2_health_checksFilters the Listing health checklist in the product editor’s summary column.
$checks (array) checks, each an array with key, label, done and tab$p (object) the productwp_easycart_admin_v2_order_status_labelsFilters the order status labels sent with the product activity data in the product editor’s Activity section.
$status_labels (array) order status labels, empty by defaultwp_easycart_admin_v2_price_context_chipsFilters the price context chips (such as login for pricing) shown near the price in the product editor.
$chips (array) chips, each an array with label and tab$p (object) the productwp_easycart_card_savingsFilters what a store product card says the shopper saves under a reduced price. Return null to show nothing; an answer without a positive amount and a percent is treated as nothing.
$answer (array|null) amount, percent, offer, price and strike, or null.$product (ec_product) The product.$card_price (array) The card’s offer, price and strike.wp_easycart_image_download_addressFilters the address the store downloads a product image from when it is given a web address (an AI assistant or the WP EasyCart API). Google Drive and Dropbox share links are turned into their download links first.
$fetch (string) The address to download.$url (string) The address given.wp_easycart_image_download_limit API pluginFilters the largest product image the store copies from a web address, in the store and in the WP EasyCart API.
20 * MB_IN_BYTES (int) Bytes. Default 20 MB; 0 means no limit.wp_easycart_login_for_pricing_textFilters the message shown on a product when the shopper is logged in but their account does not have access to the login-for-pricing price.
$text (string) message textproduct id (int) the product IDwp_easycart_low_stock_thresholdFilters the stock quantity at or below which a product or variant counts as low stock.
$threshold (int) effective low stock threshold$product_id (int) product ID, 0 when store-wide$oiq_id (int) variant row ID, 0 for product-level stock$context (object|array|null) the row the threshold was resolved fromwp_easycart_option_cart_nameFilters the name an option prints with the customer’s choice in the cart, emails and orders.
$name (string) The option set’s own name, else the one worked out from its label.$row (object) The ec_option row.$label (string) The label on the product page.wp_easycart_option_name_promptsFilters the prompts taken off the start of an option label to make the option’s name.
$prompts (string[]) Regular expressions without delimiters, matched case-insensitively.wp_easycart_prior_priceFilters the lowest price in the 30 days before a reduction, for a product or one of its variants.
$prior (float|null) The price, or null when unknown.$product_id (int) The product id.$from_now (bool) Whether it is an offer’s reduction (counted from today).$variant_id (int) The variant id (0 for the product).wp_easycart_prior_price_shownFilters the lowest price of the last 30 days as the price note prints it.
$amount (float) The amount shown.$product (ec_product) The product.$price (float) The price as recorded.wp_easycart_prior_price_strike_before_offerFilters whether the struck price is the price before the offer, not the compare-at price, while an offer runs. Default on while the lowest price of the last 30 days shows.
$strike (bool) Whether to strike the price before the offer.wp_easycart_pro_option_list_limit PROFilters how many options the PRO product editor lists in its option pickers before showing a search box.
$limit (int) Maximum options listed, default 200.$kind The kind of option list being loaded.wp_easycart_product_breadcrumbs_schemaFilters whether the Elementor product info widget prints breadcrumb schema markup.
$show (bool) True when no SEO plugin is detected.$product (object) The product.$items (array) The breadcrumb items.wp_easycart_product_builder_ai_readyFilters whether Write with AI on the Add product page can write. It answers after wp_easycart_admin_ai_ready.
$out['ready'] (bool) Whether the site’s AI service is set up for text.wp_easycart_product_builder_ai_textFilters the product description Write with AI returns on the Add product page. Return a string to answer without the site’s AI service; null lets WP EasyCart ask it.
null (string|WP_Error|null) The text, or null.$prompt (string) What the AI would be asked.$facts (array) What the page knows about the product.wp_easycart_product_builder_kindsFilters the product kinds the Add product page offers. Keep each kind’s id: it is saved with the product.
$kinds (array) The kinds.wp_easycart_product_builder_quick_minFilters how many active products a store needs before the Add product page shows its Quick start (copy a recent product).
self::QUICK_MIN (int) The number of products; at least 1.wp_easycart_product_builder_quick_startFilters what the Add product page’s Quick start shows: the newest products to copy, the usual groups and how a product was last started.
$out (array) The Quick start data.wp_easycart_product_builder_reviews_defaultFilters whether customer reviews start on for a new product on the Add product page, and why.
$out (array) on, why, total and with (products with reviews).wp_easycart_product_builder_setupFilters how an existing product is set up when the Add product page starts a new product from it (its kind, variation sets, modifiers, categories, tax, weight, stock and more; never its name, SKU or photos).
$out (array) The setup, as the page reads it.$row (object) The product row.$pro (bool) Whether WP EasyCart PRO features are on.wp_easycart_product_builder_tax_codesFilters the tax codes the Add product page suggests and finds for a tax service such as AvaTax.
$out (array) The codes.$tax['service'] (string) The tax service.$q (string) The search text.$name (string) The product name.wp_easycart_product_cache_viewerFilters the viewer details that vary the product cache key, for stores whose product queries differ per shopper.
$viewer (array) manager, user_level and role_id.wp_easycart_product_details_add_to_cart_valueFilters the Add to Cart button label on product cards and the product buy area.
$label (string) The button text.$product_id (int) The product id.wp_easycart_product_details_allow_add_to_cartFilters whether the add to cart form shows for a product that is out of stock.
$allow (bool) False by default.$product_id (int) The product id.wp_easycart_product_details_full_sizeFilters the WordPress image size used for the large product image on product pages.
$size (string) Image size name, default ‘large’.wp_easycart_product_details_image_url_type Facebook & Instagram TabsFilters the URL of a product image saved as an external image URL.
$url (string) The image URL.wp_easycart_product_details_list_price_displayFilters the HTML output of the product’s list (regular) price.
$output (string) Price HTML.$list_price (float) The list price.wp_easycart_product_details_popup_thumbnail_image_url_typeFilters the URL of an external image shown in the product page popup thumbnails.
$url (string) The image URL.wp_easycart_product_details_price_displayFilters the HTML output of the product’s price.
$output (string) Price HTML.$price (float) The product price.wp_easycart_product_details_price_post_numFilters the price HTML after the price number has been added, before the subscription interval text.
$output (string) Price HTML built so far.$product_id (int) The product id.$rand_id Random id that identifies this product display on the page.wp_easycart_product_details_price_pre_numFilters the price HTML just before the price number is added.
$output (string) Price HTML built so far.$product_id (int) The product id.$rand_id Random id that identifies this product display on the page.wp_easycart_product_details_show_cart_areaFilters whether the add to cart area (quantity and button) is shown on the product page or add to cart shortcode.
$show_add_to_cart_area (bool) True by default.wp_easycart_product_details_show_imagesFilters whether the product image gallery is shown on the product page.
$show (bool) True by default.wp_easycart_product_details_thumbnail_image_url_typeFilters the URL of an external image shown as a product page thumbnail.
$url (string) The image URL.wp_easycart_product_details_thumbnail_large_image_url_typeFilters the URL of an external image shown in the large popup thumbnail on the product page.
$url (string) The image URL.wp_easycart_product_details_thumbnail_sizeFilters the WordPress image size used for product page thumbnails.
$size (string) Image size name, default ‘medium’.wp_easycart_product_draft_daysFilters how many days a new product nobody saved is kept. Add product opens the editor on a hidden draft; a daily task deletes drafts older than this.
self::DAYS (int) Days, 7 by default.wp_easycart_product_force_select_optionsFilters whether a product shows a Select Options link instead of an add to cart button in listings.
$force (bool) False by default.$product_id (int) The product id.wp_easycart_product_list_price_displayFilters the formatted list (regular) price text shown on product listings.
$list_price (string) Formatted list price.$list_price_raw The unformatted product list price.wp_easycart_product_lock_labelFilters the name shown for the service that manages a product, in the editor’s Managed by notices; WP EasyCart PRO names its plan groups here.
'' (string) An empty string to use the built-in name.$slug (string) Who manages the product.wp_easycart_product_lock_sectionsFilters the product editor sections that can be locked, and which fields each locks and keeps.
$sections (array) Section => block fields, keep fields and columns.wp_easycart_product_lock_textFilters the wording of a managed product’s notices: the cover over a locked section, the banner, and the message when a change is refused.
$text (string) The sentence.$by (string) Who manages the product.'message' (string) Where it shows: cover, banner or message.wp_easycart_product_lock_urlFilters the address of the managing service’s own settings, linked as Open in … from a managed product’s notice; WP EasyCart PRO links a plan group’s editor.
'' (string) An empty string for the built-in answer (the fulfillment provider’s dashboard, if it has one).(string) $slug (string) Who manages the product.wp_easycart_product_locked_fieldsFilters which product fields are locked in the editor because another system manages the product.
$fields (string[]) Locked field keys such as title, price, sku or stock. None by default.$row (object) The product row.$by (string) The managing provider slug from wp_easycart_product_managed_by.wp_easycart_product_managed_byFilters which provider manages a product, which locks its fields in the editor.
$slug (string) Provider slug, such as square, or an empty string.$row (object) The product row.wp_easycart_product_price_dataFilters the data the product page prices its choices from, before it is printed as JavaScript.
$data (array) The price data.$product (ec_product) The product.wp_easycart_product_price_display TabsFilters the formatted price text shown on product listings.
$display (string) Formatted price.$price The raw product price.$product_id (int) The product id.wp_easycart_product_safety_appliesFilters whether product pages show the EU product safety details.
$applies (bool) Whether they show.$setting (string) The setting: ” (automatic), show or hide.wp_easycart_product_safety_detailsFilters the EU product safety details a product page shows. Nothing shows when the manufacturer, responsible person and warnings are all empty.
$out (array) manufacturer, responsible, product and warnings.$product_id (int) The product id.wp_easycart_product_schemaFilters the schema.org structured data built for a product.
$data (array) Structured data for the product.$product (object) The product.wp_easycart_product_schema_enabledFilters whether product schema markup is output, either sitewide or for a single product.
$on (bool) Value of the store’s product schema setting.$product (object|null) The product, when checking one product.wp_easycart_product_schema_variant_limitFilters the maximum number of variants included in a product’s schema markup.
$limit (int) Variant limit, default VARIANT_LIMIT.$product (object) The product.wp_easycart_product_schema_variant_propertyFilters the schema.org property name used to describe a variant option set.
$found (string) The property matched from the option set name, or an empty string.$set The option set being described.wp_easycart_product_show_add_to_cart_buttonFilters whether the add to cart button shows for a product in listings and quick view.
$show (bool) True by default.$product (object) The product.wp_easycart_show_card_savingsFilters whether store product cards print “You save” under a reduced price. Default the store’s setting.
$on (bool) The store’s choice.$product (ec_product|null) The product the card is for (null asks for the store’s choice).wp_easycart_show_cpt_in_menuFilters the show_in_menu setting when the store item post type is registered, so the post type can appear in the admin menu.
$show_in_menu (bool|string) Default false.wp_easycart_show_prior_priceFilters whether struck prices show the lowest price of the last 30 days. Default the store’s setting.
$enabled (bool) Whether the note shows.wp_easycart_show_product_not_foundFilters whether the product not found notice is shown; by default only store managers and the Elementor editor see it.
$show (bool) True for administrators, store managers and the Elementor editor.wp_easycart_stock_notify_batch_size PROFilters how many back-in-stock subscribers are notified per batch for a product.
$batch_size (int) Subscribers per batch, default 100.$product_id (int) Product id.wp_easycart_stock_notify_subscriber_page PROFilters how many back-in-stock subscribers are listed per page on a product.
$per_page (int) Rows per page.$product_id (int) Product id.wp_easycart_swatch_image_urlFilters the image address an option swatch shows.
$found (string) The address chosen.$url (string) The address saved on the choice.$px (int) The swatch size in pixels.wp_easycart_tabs_block_types TabsFilters the content block types the tab designer offers and the product page draws; add a wp_easycart_tabs_block object under the key its type() returns, or unset one. A saved block whose type is gone draws nothing.
self::$types (array) Type key => wp_easycart_tabs_block object; the 36 block types that ship with Tabs by default. An entry whose key does not match its type() is dropped.wp_easycart_tabs_can_manage TabsFilters whether the store may edit product tabs.
$can (bool) True with an active Premium license.wp_easycart_tabs_content TabsFilters the content of a product tab before it is shown on the storefront.
$content (string) Tab content.$item (array) The tab.wp_easycart_tabs_conversion_map TabsFilters how an older Text, FAQ or Downloads tab becomes a block when it is opened in or saved from the tab designer: which block each tab type turns into and which of that block’s fields take its content.
$map (array) Old tab type (text, faq, downloads) => block (the block type), keys (old field => block field) and data (fixed values for the new block). By default each becomes a Text, FAQ or Downloads block.wp_easycart_tabs_pair_card TabsFilters one product card in a Pairs well with block before it is drawn; return a card without a url, or a non-array, to leave that product out.
$card (array) Keys name and url (plain text), image and price (HTML, already escaped).$row (object) The ec_product row of the paired product.wp_easycart_tabs_product_values TabsFilters the product values that {placeholders} in tab blocks are filled with, such as {sku} and {weight}; add a key to make a new placeholder (lowercase letters only).
$out (array) Key => text: sku, name, brand, price, weight, width, length, height, size, stock and gtin, read from the product; empty when the product is not found.$product_id (int) The product id.wp_easycart_tabs_repeats_batch TabsFilters how many products one step of a Repeated tabs merge handles; the value is kept between 1 and 500.
self::BATCH (int) Products per step, default 100.wp_easycart_tabs_repeats_list_limit TabsFilters the most products a shared tab made by Repeated tabs can list as its chosen products; a version on more products than this must be shown on every product instead.
self::LIST_MAX (int) Most products, default 5000 (the shared tab’s list column holds about 9,000 ids).wp_easycart_tabs_repeats_scan_max TabsFilters the most copies of one tab name a Repeated tabs review reads to list its versions; past it the review says only the first copies were read, and a merge still covers every product.
self::SCAN_MAX (int) Most rows read, default 50000.wp_easycart_tabs_starters TabsFilters the starting points offered for a new shared tab in the Start from list under Extensions › Tabs, such as Shipping & returns, Size guide and FAQ; add, change or remove one by id.
$list (array) Id => either title, icon, template, tab and optionally only (a tab of an industry template by template id and tab index, optionally limited to some block types), or title, icon, summary and blocks (its own blocks).wp_easycart_tabs_templates TabsFilters the industry templates offered by Start from a template in the tab designer, whose tabs are also starting points for shared tabs; add one with its own id, change one or unset one. Blank always stays last.
self::files() (array) Id => id, name, icon, blurb, category, style and tabs; each tab has title, icon, summary, count and blocks, each block type and data. By default the fourteen industry templates and Blank.wp_easycart_unit_price_basesFilters the bases a unit price can be shown per.
$bases (array) Key => array( quantity, unit token ).wp_easycart_unit_price_default_baseFilters the base a unit price is shown per when the product leaves it on automatic. An unknown base is treated as none.
$base (string) The base key.$unit (string) The unit token.wp_easycart_unit_price_textFilters the unit price shown beside a product’s price, such as “€13.27 / kg”. An empty answer shows nothing.
$text (string) The unit price text.$product (object) The product.$amount (float) The unit price.$setup (array) measure, unit, base, quantity and base_unit.wp_easycart_unit_price_unitsFilters the units a product’s contents can be given in.
$units (array) Token => array( dimension, size in g, ml, cm, m² or item, label ).wp_easycart_unlisted_sqlFilters the SQL that store product lists, live search and the Elementor product listing widgets add to leave out products that sell another way: by default a WP EasyCart PRO plan group’s products, which sell from its pricing table while their own pages still work.
$sql (string) AND alias.plan_tier_id = 0 by default; return SQL starting with AND, or an empty string to leave nothing out.$alias (string) The ec_product table’s alias in the query.wp_easycart_update_stock_quantity PROFilters the stock quantity change applied to a product when its stock is updated or restocked.
$quantity Quantity to apply.$product_id (int) Product id.wp_easycart_variant_matrix_limit PROFilters the maximum number of variants a single product may have.
$limit (int) Default 20000.wp_easycart_variant_rebuild_limitFilters how many products have their variants rebuilt per run after an option set changes.
$limit (int) Default 200.$option_ids (int[]) The option sets that changed.wpeasycart_basic_optionitemFilters an option item row loaded from the database before it is cached.
$optionitem (object) Option item database row (ec_optionitem), or null if not found.wpeasycart_basic_optionitemsFilters the list of option item rows loaded for an option set before they are cached.
$optionitems (array) Option item database rows for the option set, ordered by optionitem_order.wpeasycart_db_get_all_advanced_optionitems_resultsFilters the advanced option item rows loaded from the database before they are cached.
$optionitems (array) Advanced option item database rows.wpeasycart_description_content_initally_activeFilters whether the description tab panel starts hidden on the product details page; a value containing display:none hides it, an empty string shows it.
$active (string) Empty string by default, which shows the description panel.$product_id (int) Product id.wpeasycart_description_initally_activeFilters the CSS class that marks the description tab active on the product details page.
$class (string) Active class name; defaults to ‘ec_active’.$product_id (int) Product id.wpeasycart_search_termsFilters the list of database columns searched by the store product search.
$search_terms (array) Column names searched, such as product.title.Categories, menus and manufacturers
Grouped by what they are about
5 filterswp_easycart_category_ideasFilters the smart category ideas offered for rule-based categories. The list is cut to the most it shows and kept for ten minutes.
$ideas (array) Each: id, name, why, icon, rules, count, sample, needs and season.wp_easycart_category_ideas_gift_seasonFilters whether the holiday gift guide category idea is in season.
$season (bool) True from November 1 to December 24.wp_easycart_smart_categories_enabled PROFilters whether smart categories are enabled.
$enabled (bool) Default is whether the store is licensed for them.wp_easycart_smart_categories_flush_cache PROFilters whether product and category caches are flushed after smart categories sync; return false to handle invalidation yourself.
$flush (bool) Default true.wp_easycart_smart_categories_licensed PROFilters whether the store’s license allows smart categories.
$licensed (bool) Whether the license is active.Orders
Grouped by what they are about
94 filterswp_easycart_admin_duplicate_order_originalFilters the new order row before it is inserted when an admin duplicates an existing order; kept for backward compatibility.
$new (array) Column values for the duplicate order row about to be inserted.wp_easycart_admin_order_address_editorFilters the data the order screen’s address editor uses, before it is printed as JSON on the page.
$data (array) layouts, nozip, regions (ISO code => list of [ code, name ]), region and postal words (by ISO code), and choose.wp_easycart_admin_order_details_add_new_line_actionFilters the JavaScript function name called when the button to add a new line item is clicked on the admin order details screen; Pro replaces the default upgrade prompt.
$action (string) Name of the JavaScript function to call; defaults to show_pro_required.wp_easycart_admin_order_details_billing_edit_actionFilters the JavaScript function name called when the button to edit the billing address is clicked on the admin order details screen; Pro replaces the default upgrade prompt.
$action (string) Name of the JavaScript function to call; defaults to show_pro_required.wp_easycart_admin_order_details_delete_line_actionFilters the JavaScript function name called when the button to delete an order line item is clicked on the admin order details screen; Pro replaces the default upgrade prompt.
$action (string) Name of the JavaScript function to call; defaults to show_pro_required.wp_easycart_admin_order_details_edit_line_actionFilters the JavaScript function name called when the button to edit an order line item is clicked on the admin order details screen; Pro replaces the default upgrade prompt.
$action (string) Name of the JavaScript function to call; defaults to show_pro_required.wp_easycart_admin_order_details_order_bottom_edit_actionFilters the JavaScript function name called when the button to edit the order details section is clicked on the admin order details screen; Pro replaces the default upgrade prompt.
$action (string) Name of the JavaScript function to call; defaults to show_pro_required.wp_easycart_admin_order_details_order_date_edit_actionFilters the JavaScript function name called when the button to edit the order date is clicked on the admin order details screen; Pro replaces the default upgrade prompt.
$action (string) Name of the JavaScript function to call; defaults to show_pro_required.wp_easycart_admin_order_details_order_edit_actionFilters the JavaScript function name called when the button to edit the customer details is clicked on the admin order details screen; Pro replaces the default upgrade prompt.
$action (string) Name of the JavaScript function to call; defaults to show_pro_required.wp_easycart_admin_order_details_refund_actionFilters the JavaScript function name called when the refund button is clicked on the admin order details payment card; Pro replaces the default upgrade prompt.
$action (string) Name of the JavaScript function to call; defaults to show_pro_required.wp_easycart_admin_order_details_shipping_edit_actionFilters the JavaScript function name called when the button to edit the shipping address is clicked on the admin order details screen; Pro replaces the default upgrade prompt.
$action (string) Name of the JavaScript function to call; defaults to show_pro_required.wp_easycart_admin_order_details_totals_edit_actionFilters the JavaScript function name called when the button to edit order totals is clicked on the admin order details payment card; Pro replaces the default upgrade prompt.
$action (string) Name of the JavaScript function to call; defaults to show_pro_required.wp_easycart_admin_order_fields_card_alwaysFilters whether the custom checkout fields card is shown on the admin order screen even when the order has no field values.
$show (bool) False by default; true shows the card when empty.$order (object) Order row.wp_easycart_admin_order_gift_editableFilters whether the gift order card on the admin order screen shows an Edit button.
$editable (bool) False by default; true shows the Edit button.$order_id (int) ID of the order.wp_easycart_admin_order_giftcard_refundsFilters whether the order screen’s Refund button also shows for an order with no money left to refund but gift card balance that can still go back onto its card. WP EasyCart PRO returns true.
false (bool) Offer refunds to the gift card, false by default.wp_easycart_admin_order_history_entry PROFilters how a custom order history log entry is displayed on the admin order timeline; return an array to supply the entry, or null to leave it unhandled.
$entry (array|null) Entry data supplied by an extension; null by default.$order_log_key (string) Log key identifying the type of history entry.$meta (array) Metadata saved with the history entry.$item (object) The order log row.wp_easycart_admin_order_records_depositsFilters whether the admin order screen can record a deposit or payment taken outside the store. WP EasyCart PRO answers true for its Record payment; otherwise the button shows locked.
false (bool) Whether payments can be recorded.$order (object) The order row.wp_easycart_admin_order_timeline_labels PROFilters the labels used for order timeline events in the admin fulfillment cell.
$labels (array) Order log key => label.$order_id (int) ID of the order.wp_easycart_admin_orders_details_basic_fields_listFilters the list of basic field definitions on the admin order details form.
$fields (array) Field definitions, each an array with keys such as name, type, label and required.wp_easycart_admin_orders_details_shipment_fields_listFilters the list of shipment field definitions on the admin order details form.
$fields (array) Field definitions, each an array with keys such as name, type, label and required.wp_easycart_business_details_linesFilters the business details lines printed on receipts and invoices.
$lines (array) The lines.wp_easycart_buyer_note_blocked_shortcodesFilters the shortcodes that never run inside a product’s notes for buyers (store pages such as the account, cart and store; storefront shortcodes too in an email).
$tags (string[]) Shortcode names.$context (string) confirmation, email or account.wp_easycart_buyer_note_stand_inFilters what a blocked shortcode shows inside a note for buyers, such as the link to My Account that stands in for [ec_account]. An empty string leaves it out.
$html (string) The HTML.$tag (string) The shortcode name.$context (string) confirmation, email or account.wp_easycart_cancel_restockFilters whether a cancelled order’s stock goes back into inventory; return false to leave it out. Also asked with order id 0 to word the Cancel this order? confirmation.
$on (bool) The Put stock back when an order is cancelled setting (Settings › Products › Inventory), on by default.(int) $order_id (int) The order id, or 0 when asked for the store as a whole.wp_easycart_document_builtinsFilters the built-in document profiles for a document type.
$builtins (array) Built-in profile definitions.$type (string) The document type.wp_easycart_document_fieldsFilters the fields a document type can show or hide.
$fields (array) Field key => settings such as group, label and default.$type (string) The document type.wp_easycart_document_order_profileFilters which document profile is used for an order when none is specified; PRO uses it for rules and gift orders.
$value (string) Profile id; empty by default.$type (string) The document type.$order_id (int) The order id.wp_easycart_document_profileFilters the field settings of a document profile.
$values (array) Field key => on/off value for the profile.$type (string) The document type.$id (string) The profile id.wp_easycart_document_render_{type}Filters the HTML rendered for a document type that renders through its own sender, such as the receipt and shipped emails. {type} is the document type.
$value (string) Rendered HTML; empty by default.$order_id (int) The order id.$fields (array) The resolved document fields.$args (array) Render arguments.wp_easycart_document_rule_match PROFilters the document rule matched for an order (PRO), letting code replace or clear the matched rule.
$found (array|null) The matched rule, or null.$order_id (int) The order id.wp_easycart_document_typesFilters the list of document types shown in Settings > Documents.
$types (array) Document type => settings.wp_easycart_documents_proFilters whether the store gets more than one profile per document (WP EasyCart PRO, licensed).
$value (bool) Whether PRO document profiles are enabled; false by default.wp_easycart_documents_pro_licensed PROFilters whether the PRO documents feature is licensed.
$licensed (bool) Whether the WP EasyCart license is valid.wp_easycart_ecv2_create_label_actionRuns on the order details Fulfill panel with a placeholder value; the return value is not used, so it only gives listeners a hook point.
$action (string) The string show_pro_required.wp_easycart_ecv2_format_phoneFilters a phone number’s display text and tel: link on the order details screen.
$phone (array) display (formatted text) and href (tel: link).$raw (string) The phone number as stored.$country (string) The country used to format it.wp_easycart_ecv2_order_details_payment_fields_listFilters the fields in the order details payment area (gift card and coupon used).
$fields (array) List of field definitions with name, type, label, required, validation_type and value.wp_easycart_ecv2_order_duplicate_payloadFilters the data sent to the Duplicate order dialog when an order is chosen for duplication.
$payload (array) Order id, date, status, customer, ship to, items, currency sample, totals, shipping and customer notes flag.$order (object) The original order.wp_easycart_ecv2_order_duplicate_rowFilters the new order row before a duplicated order is inserted into the database.
$new (array) The new order row values.$original (object) The original order.$_POST (array) The submitted form data.wp_easycart_ecv2_order_filter_callback_whereFilters the SQL WHERE clause for a custom order list filter that WP EasyCart does not handle itself.
$value (string) SQL condition; empty by default.$filter_index (int) Index of the filter.$value (string) The chosen filter value.$this The order table object.wp_easycart_ecv2_order_flagsFilters the flags (warnings and notices) shown on an order’s details screen.
$flags (array) Each flag with kind, title and text.$order (object) The order row.wp_easycart_ecv2_order_fulfillment_stateFilters the fulfillment state of an order shown on the order details screen.
$state (string) The fulfillment state.$order (object) The order row.wp_easycart_ecv2_order_health_filter_whereFilters the SQL WHERE clause for an order list health filter that WP EasyCart does not handle itself.
$value (string) SQL condition; empty by default.$filter_key (string) The health filter key.$this The order table object.wp_easycart_ecv2_order_health_statsFilters the health stats tiles shown above the orders list.
$health_stats (array) List of stats with label, value, filter_value, color and group.$this->health_data (array) The counts the stats were built from.wp_easycart_ecv2_order_insight_chips PROFilters the insight chips shown in the header of an order’s details screen (PRO).
$insights (array) List of chips with icon and label.$order (object) The order row.wp_easycart_ecv2_order_next_stepsFilters the possible next steps for an order; the step with the lowest priority number is shown as the next step.
$steps (array) Each step with key, priority (10 review payment, 20 refund due, 30 send invoice, 40 collect a balance, 45 mark picked up, 50 fulfill), label, onclick and icon.$order (object) The order row.$context (array) fulfillment, payment, local_pickup, store_open and flags.wp_easycart_ecv2_order_pdf_download_available PROFilters whether a PDF receipt or invoice can be downloaded for an order (PRO).
$enabled (bool) Whether the PDF download is available.wp_easycart_ecv2_order_quick_edit_payloadFilters the data returned to the orders list quick edit form.
$payload (array) Quick edit values such as carrier, tracking and edit_url.$order (object) The order row.wp_easycart_ecv2_order_row_menu_actionsFilters the actions in each row’s menu in the orders list.
$row_actions (array) List of actions with label, name, icon, href or action, and optional danger and confirm settings.wp_easycart_ecv2_order_saved_viewsFilters the saved views shown as filter pills above the orders list (PRO).
$value (array) List of saved views, each with id, label and params; empty by default.wp_easycart_ecv2_order_spreadsheet_columnsFilters the columns of the orders list spreadsheet view (PRO).
$value (array) Spreadsheet columns; empty in the free plugin.wp_easycart_ecv2_order_stepsFilters the progress steps shown for an order on the order details screen.
$steps (array) The order’s steps, each with key, label, sub and state.$order (object) The order row.$ctx (array) Context about the order’s payment, fulfillment and pickup.wp_easycart_ecv2_order_view_modesFilters the view modes available in the orders list; PRO adds spreadsheet.
$modes (array) View mode slugs; table and card by default.wp_easycart_order_details_discount_displayFilters whether the order discount total row is shown on the order confirmation page, the order’s page in My Account, the printed receipt and invoices.
$show (bool) true by default$order the orderwp_easycart_order_details_promo_code_displayFilters whether the promo code row is shown on the order confirmation page and the order’s page in My Account.
$show (bool) true by default$order the orderwp_easycart_order_details_show_discount_totalFilters whether the line total discount is shown for order lines on the printed receipt.
$show (bool) true by defaultwp_easycart_order_details_show_discount_unitFilters whether the per-unit discount is shown for order lines on the printed receipt.
$show (bool) true by defaultwp_easycart_order_deviceFilters the device type recorded on an order when it is inserted.
$device (string) device$order_id (int) the order ID$kind (string) checkout, staff or renewalwp_easycart_order_display_grand_total PROFilters the grand total shown on order invoices and order displays.
$grand_total (float) the order grand total$order the orderwp_easycart_order_display_sub_total PROFilters the sub total shown on order invoices and order displays, after discounts are subtracted per settings.
$sub_total (float) the sub total to display$order_sub_total (float) the order’s stored sub total$order_items the order line itemswp_easycart_order_field_rowsFilters the rows of checkout field answers shown for an order.
$rows (array[]) the field rows$order_id (int) the order ID$surface (string) where the rows are shown$source (int|object) what was asked forwp_easycart_order_fulfillment_stateFilters the fulfillment state calculated for an order, letting fulfillment extensions add their own part.
$out (array) the fulfillment state$order_id (int) the order IDwp_easycart_order_line_fulfillment_dataFilters the fulfillment data stamped on an order line when it is inserted: variant ID, fulfillment provider and unit cost.
$data (array) optionitemquantity_id, fulfillment_provider and unit_cost (float or null)$line (object) the line as inserted$hint (object|null) the cart line, when there is onewp_easycart_order_package_actionsFilters the action buttons shown on a package row on the admin order screen.
$actions (array) key => array with label, onclick or url or attrs, primary and target$package (object) the package; shipment_id is 0 while the order’s packages are not saved yet$order (object) the order rowwp_easycart_order_pay_linksFilters the list of extra payment links shown on the order pay page.
$links (array) Links to show, empty by default.$order (object) The order being paid.wp_easycart_order_shipped_statusFilters the order status id the admin order screen applies when you fulfill an order (Mark as shipped).
$status_id (int) Order status id, default 2.wp_easycart_order_status_defaultsFilters the built-in order status names and their labels.
$names (array) Status id => array( English name => label ).wp_easycart_pdf_document_filename PROFilters the file name of a generated PDF document such as a packing slip or invoice.
$name (string) File name, such as packing-slip-1042.pdf.$type (string) Document type.$order_id (int) The order id.wp_easycart_pdf_document_html PROFilters the HTML of a PDF document before it is turned into a PDF.
$html (string) Document HTML.$type (string) Document type.$order_id (int) The order id.$args (array) Document arguments.wp_easycart_pdf_receipt_available PROFilters whether the PDF receipt feature is available on this store.
$available (bool) True when the store has a valid license.wp_easycart_pdf_receipt_dompdf_options PROFilters the dompdf options used to render a PDF receipt.
$settings (array) dompdf option setter method name => value.wp_easycart_pdf_receipt_filename PROFilters the file name of the PDF receipt.
$name (string) File name built from the pattern, with order id and date.$order_id (int) The order id.wp_easycart_pdf_receipt_header_html PROFilters the header HTML block (business details, order number and date) at the top of the PDF receipt or invoice.
$head (string) Header HTML.$order (object) The order.wp_easycart_pdf_receipt_html PROFilters the full HTML of the PDF receipt before it is rendered to PDF.
$html (string) Receipt HTML.$order_id (int) The order id.$order (object) The order.wp_easycart_pdf_receipt_image_src PROFilters the local file path or URL used for each image in the PDF receipt; return an empty string to drop the image.
$resolved (string) The resolved image source.$src (string) The original image src in the HTML.wp_easycart_pdf_receipt_min_memory PROFilters the minimum memory limit required before a PDF receipt is generated; return 0 to skip the check.
$floor (int) Minimum memory in bytes, default MIN_MEMORY.wp_easycart_pdf_receipt_normalized_html PROFilters the PDF receipt HTML after its layout has been normalized for the PDF engine.
$html (string) Normalized HTML.wp_easycart_pdf_receipt_paper PROFilters the paper size of the PDF receipt.
$paper (string) letter or a4, chosen from the site locale by default.wp_easycart_pdf_receipt_template PROFilters the template file path used to build the PDF receipt.
$path (string) Absolute path to the template file.wp_easycart_pdf_receipt_title PROFilters the heading text (Receipt or Invoice) shown on the PDF receipt.
$title (string) The heading text.$order (object) The order.wp_easycart_show_payment_pending_noticeFilters whether an order that is not approved yet says its payment is still being processed, on the receipt email, the order confirmation page and the order’s page in My Account.
$show (bool) The Payment pending notice setting.$order (object|null) The order.wp_easycart_store_noteFilters a store-wide note for buyers as saved (Settings > Documents > Notes for buyers), before it is checked for content.
$note (string) The note’s HTML.$place (string) confirmation, email or account.wp_easycart_store_note_appliesFilters whether a store-wide note for buyers shows for an order, after its Show on choice is applied.
$show (bool) Whether it shows.$order_id (int) The order id.$place (string) confirmation, email or account.$when (string) all, downloads, members or ships.wp_easycart_store_note_htmlFilters the finished HTML of a store-wide note for buyers for one order.
$html (string) The note.$order_id (int) The order id.$place (string) confirmation, email or account.wp_easycart_success_page_factsFilters the order details listed on the order confirmation page, such as the date, payment, shipping method and email.
$facts (array[]) Each: key (date, payment, shipping, email, coupon, giftcard, vat_number or notes), label and value as plain text.$order (ec_orderdisplay) The order.wp_easycart_success_page_linesFilters the items listed on the order confirmation page.
$lines (array[]) Each line: id, title, sku, options, quantity, total and image.$order (ec_orderdisplay) The order.wp_easycart_success_page_summaryFilters whether the order confirmation page shows the order’s items, totals, details and addresses under the thank-you card; the Elementor Order Confirmation widget returns false because it draws its own.
true (bool) Show it, true by default.$order (ec_orderdisplay) The order.wp_easycart_success_page_totalsFilters the totals rows on the order confirmation page, from Subtotal to Order Total.
$rows (array[]) Each row: key (subtotal, tip, shipping, tax, offer, discount, duty, vat, gst, pst, hst, fee, refund or total), label and amount as plain text.$order (ec_orderdisplay) The order.wp_easycart_withdrawal_appliesFilters whether the EU withdrawal button applies to an order at all; whether its period is still open is then worked out line by line. Not asked while the button is off.
$applies (bool) True unless the order is a draft, an unpaid or failed attempt, refunded or cancelled, a subscription renewal, or (with Offer it on set to Orders to the EU and the EEA) billed and shipped outside those countries. An order with no country gets it.$order (object) The ec_order row.wp_easycart_withdrawal_countriesFilters the countries whose orders get the EU withdrawal button when Offer it on is Orders to the EU and the EEA. The same list decides whether the store itself is in the EU, which switches the button on when the setting is first created.
$list (string[]) ISO country codes, by default the 27 EU countries (Greece as GR and EL) plus Iceland, Liechtenstein and Norway.wp_easycart_withdrawal_enabledFilters whether the EU withdrawal button is on. Asked only once the database update that adds withdrawal statements has run; before that the button is off.
$on (bool) The Withdrawal button setting under Settings › Checkout › Withdrawal button (EU). Its first value is on for a store in the EU or the EEA and off for other stores.wp_easycart_withdrawal_line_exemptFilters whether an order line has no right of withdrawal (made to order, perishable, sealed hygiene goods and so on); return true to leave it out of the withdrawal form.
$exempt (bool) The product’s No right of withdrawal switch in Product Behaviors, false by default.$row (object) The order line: ec_orderdetail columns plus no_withdrawal.$order (object) The ec_order row.wp_easycart_withdrawal_order_datesFilters when an order was placed, shipped and delivered, the dates its EU withdrawal period counts from.
$dates (array) Keys ordered, shipped and delivered (Unix times, 0 when not known) and all_shipped (bool: every outgoing package has left).$order (object) The ec_order row.wp_easycart_withdrawal_settingsFilters the EU withdrawal button’s settings. A days value below 14 is raised back to 14.
$settings (array) Keys scope (eu or all), days (14 to 365), start (delivered, shipped or ordered: when the days start for items that ship), allowance (days allowed for delivery after shipping when no delivery is recorded, 0 to 60) and footer (bool: the button at the foot of every page).wp_easycart_withdrawal_windowFilters an order’s EU withdrawal period line by line, which the withdrawal form, the buttons, the emails and each saved statement read.
$window (array) Keys order_id, lines (each with id, product_id, title, options, quantity, available, withdrawn, ships, start, deadline, exempt and state: open, exempt, withdrawn, refunded or closed), open (any line open), deadline (the latest open line’s, 0 while one has not started), pending, withdrawn (a statement covers the whole order) and dates.$order (object) The ec_order row.Customers and accounts
Grouped by what they are about
112 filterswp_easycart_account_activate_account_linkFilters the URL of the account page’s activate_account screen returned by the account links helper.
$url (string) Account page URL with the ec_page=activate_account query argument appended.wp_easycart_account_billing_information_linkFilters the URL of the account page’s billing_information screen returned by the account links helper.
$url (string) Account page URL with the ec_page=billing_information query argument appended.wp_easycart_account_dashboard_linkFilters the URL of the account page’s dashboard screen returned by the account links helper.
$url (string) Account page URL with the ec_page=dashboard query argument appended.wp_easycart_account_downloads_linkFilters the URL of the account page’s Downloads screen returned by the account links helper.
$url (string) Account page URL with the ec_page=downloads query argument appended.wp_easycart_account_forgot_password_linkFilters the URL of the account page’s forgot_password screen returned by the account links helper.
$url (string) Account page URL with the ec_page=forgot_password query argument appended.wp_easycart_account_linkFilters the base account page URL returned by the account links helper when no specific account screen is requested.
$url (string) Account page URL.wp_easycart_account_list_per_pageFilters how many items a page of a My Account list shows. Default 10; the result is kept between 1 and 100.
$per_page (int) Items per page (10).$name (string) The list: orders or downloads.wp_easycart_account_login_linkFilters the URL of the account page’s login screen returned by the account links helper.
$url (string) Account page URL with the ec_page=login query argument appended.wp_easycart_account_logout_linkFilters the URL of the account page’s logout screen returned by the account links helper.
$url (string) Account page URL with the ec_page=logout query argument appended.wp_easycart_account_logout_redirect_urlFilters the URL the shopper is redirected to after logging out of their account.
$url (string) Redirect URL; defaults to the account login page.wp_easycart_account_modern_layoutFilters whether the My Account pages use the current layout: one account menu beside every signed-in page, breadcrumbs and the orders as cards. Return false to keep the older markup.
$modern (bool) True, except inside the Elementor account widgets.$this (ec_accountpage) The account page.wp_easycart_account_order_details_linkFilters the URL of the account page’s order_details screen returned by the account links helper.
$url (string) Account page URL with the ec_page=order_details query argument appended.wp_easycart_account_order_toneFilters the colour of an order’s status badge in My Account.
$tone (string) waiting, paid, done, refunded or closed, worked out from the order status.$this (ec_orderdisplay) The order.wp_easycart_account_orders_linkFilters the URL of the account page’s orders screen returned by the account links helper.
$url (string) Account page URL with the ec_page=orders query argument appended.wp_easycart_account_page_idFilters the ID of the page used as the account page, letting multilingual or custom setups substitute another page.
$page_id Account page ID from the ec_option_accountpage setting.wp_easycart_account_page_urlFilters the account page URL used by the Elementor account widgets and other account templates.
$account_page (string) Account page URL.wp_easycart_account_password_linkFilters the URL of the account page’s password screen returned by the account links helper.
$url (string) Account page URL with the ec_page=password query argument appended.wp_easycart_account_payment_methods_enabledFilters whether My Account can have a Payment methods page. Default true when the store has Stripe subscriptions shown in My Account.
$enabled (bool) Whether the page is available.wp_easycart_account_payment_methods_linkFilters the URL of the account page’s payment_methods screen returned by the account links helper.
$url (string) Account page URL with the ec_page=payment_methods query argument appended.wp_easycart_account_payment_methods_listedFilters whether My Account lists the Payment methods page for a customer. Default true when the store has Stripe subscriptions and this customer has one.
$listed (bool) Whether the page is listed.$user (ec_user) The customer.wp_easycart_account_payment_methods_viewFilters the data a customer’s Payment methods page is drawn from, before it is cached for the request.
$view (array) The page data.$user (ec_user) The customer.wp_easycart_account_personal_information_linkFilters the URL of the account page’s personal_information screen returned by the account links helper.
$url (string) Account page URL with the ec_page=personal_information query argument appended.wp_easycart_account_print_receipt_linkFilters the URL of the account page’s print_receipt screen returned by the account links helper.
$url (string) Account page URL with the ec_page=print_receipt query argument appended.wp_easycart_account_register_linkFilters the URL of the account page’s register screen returned by the account links helper.
$url (string) Account page URL with the ec_page=register query argument appended.wp_easycart_account_reset_password_linkFilters the URL of the account page’s reset_password screen returned by the account links helper.
$url (string) Account page URL with the ec_page=reset_password query argument appended.wp_easycart_account_shipping_information_linkFilters the URL of the account page’s shipping_information screen returned by the account links helper.
$url (string) Account page URL with the ec_page=shipping_information query argument appended.wp_easycart_account_subscription_details_linkFilters the URL of the account page’s subscription_details screen returned by the account links helper.
$url (string) Account page URL with the ec_page=subscription_details query argument appended.wp_easycart_account_subscriptions_linkFilters the URL of the account page’s subscriptions screen returned by the account links helper.
$url (string) Account page URL with the ec_page=subscriptions query argument appended.wp_easycart_address_label_keysFilters which address label phrases each country uses for its region and postcode fields.
$keys (array) ISO country code => array( region key, postal key ).wp_easycart_address_layoutsFilters the city, region and postcode layout of addresses by country, written with the tokens %C, %S, %Z and %n.
$layouts (array) ISO country code => layout.wp_easycart_address_linesFilters the lines of a formatted address before they are returned.
$lines (array) The address lines.$parts (array) The address parts.$args (array) The arguments the address was rendered with.wp_easycart_address_no_postcodeFilters the countries that have no postcodes; address forms leave the postcode out for them.
$none (array) ISO country codes.wp_easycart_admin_role_remote_panelsFilters the list of remote admin panels that can be granted to a user role.
$base (array) panel slug => translated panel labelwp_easycart_admin_subscriber_list_columnsFilters the columns shown in the admin subscriber list table.
$columns (array) column definitions with name, label, format, select, orderby and responsive-hide keyswp_easycart_admin_user_activity_detail_bits PROFilters the list of detail snippets shown next to an entry in the admin customer activity timeline.
$bits (array) escaped HTML detail strings$row (object) the activity row$meta (array) the activity’s metadatawp_easycart_admin_user_bulk_edit_dataFilters the data written to each customer when a bulk edit is applied in the admin user list.
$data (array) column => value to update$_POST (array) the submitted bulk edit requestwp_easycart_admin_user_bulk_edit_handledLets an extension report the customer accounts it changed itself during a bulk edit on the Customers list, outside the ec_user columns (such as WP EasyCart PRO’s Add Tag). Those accounts count as updated and get wpeasycart_admin_user_updated, so an edit with only such changes is no longer refused with No changes selected.
array() (int[]) Ids of the accounts you changed, empty by default; ids outside the selection are dropped.$ids (int[]) The selected account ids.$_POST (array) The bulk edit request.wp_easycart_admin_user_cell_contentFilters the HTML for a custom cell in the admin user list. Return a non-empty string to replace the default cell output.
$html (string) custom cell HTML, empty by default$result (object) the user row$col (array) the column definition$table (object) the user table instancewp_easycart_admin_user_details_v2_delete_warningFilters an extra warning shown before a customer is deleted on the version 2 customer details screen.
$delete_warning (string) warning text, empty by default$user (object) the customer being editedwp_easycart_admin_user_details_v2_tab_groupsFilters the tab groups (Profile, Commerce, Insights and so on) on the version 2 customer details screen.
$tab_groups (array) group slug => labelwp_easycart_admin_user_details_v2_tabsFilters the tabs on the version 2 customer details screen, including each tab’s label, icon, group and description.
$tabs (array) tab slug => array with label, icon, group, desc$user (object) the customer being editedwp_easycart_admin_user_filter_callback_whereFilters the SQL WHERE fragment for a callback-based filter in the admin user list, such as a spend range or last-order recency.
$where (string) SQL fragment, empty by default$callback_key (string) the filter’s callback key$value (mixed) the selected filter value$filter (array) the filter definitionwp_easycart_admin_user_health_filter_whereFilters the SQL WHERE fragment for a health-strip filter in the admin user list, such as customers with orders or VIPs.
$where (string) SQL fragment, empty by default$filter_key (string) the selected health filter keywp_easycart_admin_user_identity_flagsFilters the small identity flags (icons with titles) shown beside a customer in the admin user list.
$flags (array) flags, each an array with icon, title and cls$result (object) the user rowwp_easycart_admin_user_inline_fieldsFilters the list of customer fields that can be edited inline in the admin user list.
$allowed_fields (array) editable field names, first_name and last_name by defaultwp_easycart_admin_user_list_bulk_edit_fieldsFilters the fields offered in the admin user list bulk edit panel.
$fields (array) bulk edit field definitions with name, label, type and optionswp_easycart_admin_user_list_columnsFilters the columns of the admin user list table.
$columns (array) column definitions$pro_gate whether Pro features are available, as set by the user tablewp_easycart_admin_user_list_filtersFilters the filter controls available above the admin user list table.
$filters (array) filter definitions$pro_gate whether Pro features are available, as set by the user tablewp_easycart_admin_user_list_health_statsFilters the health statistics strip shown above the admin user list.
$health_stats (array) stat definitions with label, value, filter_value, color and group$health_data (array) the computed health counts$pro_gate whether Pro features are available, as set by the user tablewp_easycart_admin_user_list_row_menuFilters the row action menu items in the admin user list.
$actions (array) menu items with label, name, icon and action or href$pro_gate whether Pro features are available, as set by the user tablewp_easycart_admin_user_list_search_columnsFilters the database columns searched by the admin user list search box.
$columns (array) column names such as ec_user.emailwp_easycart_admin_user_list_spreadsheet_columnsFilters the columns of the spreadsheet view of the admin user list.
$columns (array) column definitions with name, label, format and ss_editablewp_easycart_admin_user_overview_carts PROFilters the abandoned carts data loaded for the customer overview on the admin customer details screen.
$abandoned_carts the abandoned carts data, as loaded for the overview$user (object) the customerwp_easycart_admin_user_overview_carts_link PROFilters the admin link to the abandoned carts screen pre-filtered to a customer’s email.
$url (string) relative admin URL with the ec_email query argument$email (string) the customer’s emailwp_easycart_admin_user_overview_download_nonce_action PROFilters the nonce action used when creating download links in the customer overview.
$nonce_action (string) nonce action, default ‘wp-easycart-action-edit’wp_easycart_admin_user_overview_downloads PROFilters the downloads data loaded for the customer overview on the admin customer details screen.
$downloads the downloads data, as loaded for the overview$user (object) the customerwp_easycart_admin_user_overview_fileFilters the path of the template file used to print the admin customer overview.
$file (string) path to user-overview.php$details (object) the customer details screen objectwp_easycart_admin_user_overview_giftcard_nonce_action PROFilters the nonce action used when creating gift card links in the customer overview.
$nonce_action (string) nonce action, default ‘wp-easycart-action-edit’wp_easycart_admin_user_overview_giftcards PROFilters the gift cards data loaded for the customer overview on the admin customer details screen.
$giftcards the gift cards data, as loaded for the overview$user (object) the customerwp_easycart_admin_user_overview_notes PROFilters the notes feed data loaded for the customer overview on the admin customer details screen.
$notes_feed the notes feed data, as loaded for the overview$user (object) the customerwp_easycart_admin_user_overview_order_items PROFilters the order line items data loaded for the customer overview on the admin customer details screen.
$order_items the order line items data, as loaded for the overview$user (object) the customerwp_easycart_admin_user_overview_orders PROFilters the orders data loaded for the customer overview on the admin customer details screen.
$orders the orders data, as loaded for the overview$user (object) the customerwp_easycart_admin_user_overview_orders_per_page PROFilters how many orders are shown per page in the customer overview (default 20).
$per_page (int) orders per page, default 20$user (object|null) the customerwp_easycart_admin_user_overview_stats PROFilters the order statistics data loaded for the customer overview on the admin customer details screen.
$order_stats the order statistics data, as loaded for the overview$user (object) the customerwp_easycart_admin_user_overview_subscription_link PROFilters the admin link to a subscription from the customer overview.
$url (string) relative admin URL for editing the subscription$subscription_id (int) the subscription idwp_easycart_admin_user_overview_subscriptions PROFilters the subscriptions data loaded for the customer overview on the admin customer details screen.
$subscriptions the subscriptions data, as loaded for the overview$user (object) the customerwp_easycart_admin_user_overview_top_products PROFilters the top purchased products data loaded for the customer overview on the admin customer details screen.
$top_products the top purchased products data, as loaded for the overview$user (object) the customerwp_easycart_elementor_account_menu_itemsFilters the links shown in the Elementor account menu widget.
$items (array) List of menu items, each with text and url.$settings (array) The widget settings.$views (array) The account views available.wp_easycart_elementor_form_subscribeFilters whether an Elementor Pro form submission also subscribes the visitor to the store’s email list; return false to skip.
$subscribe (bool) Whether to subscribe; true by default.$email (string) The submitted email address.$record (object) Elementor Pro’s form record.wp_easycart_email_lookup_limitsFilters how many emails the storefront may say have an account or not, by session, IP address and site-wide surge.
$limits (array) session_hour (6), ip_hour (12), ip_day (40), check_session (2), check_ip (3), surge_hour (150) and surge_ip_hour (3).wp_easycart_max_filesize_upload_limitFilters the maximum size in bytes allowed for customer file uploads.
$max (int) maximum upload size in bytes, capped by PHP’s upload limitswp_easycart_membership_product_idsFilters which products’ purchase opens a membership for the products a [ec_membership] shortcode or a page’s Limit Access box names. WP EasyCart PRO adds a plan’s other billing period and, when its plan group allows, the higher tiers.
$ids (int[]) The product ids asked for.$user_id (int) The ec_user id.wp_easycart_minimum_password_lengthFilters the minimum password length required when a shopper resets their password.
$min_length (int) minimum length, default 6wp_easycart_order_lookup_viewFilters what the guest order lookup form shows, the form where a shopper without an account enters an order number and email to be sent the order’s link ([ec_order_lookup], the account page and the withdrawal page).
$lookup (array) heading, embedded, values (order_ref, email), errors, sent, check and action (the form address).wp_easycart_page_access_customer_pagesFilters the limited pages a customer can open, as listed in My Account.
$out (array) Post id => title and url.$user_id (int) The ec_user id.wp_easycart_page_access_decisionFilters what a visitor gets on a limited post.
$decision (array) allowed and state.$post_id (int) The post id.$rule (array) The post’s rule.wp_easycart_page_access_exemptFilters whether a post can never be limited by Limit Access.
$exempt (bool) Whether the post is exempt.$post_id (int) The post id.wp_easycart_page_access_message_htmlFilters the members-only view shown on the account page for a limited post.
$out (string) The HTML.$post_id (int) The limited post id.wp_easycart_page_access_post_typesFilters the post types that show WP EasyCart Limit Access.
$types (string[]) Post types.wp_easycart_page_access_ruleFilters a post’s Limit Access rule. The result is merged over the default rule.
$rule (array) The rule.$post_id (int) The post id.wp_easycart_page_access_staffFilters whether the current user counts as staff for a limited page; staff see it and are never sent away.
$staff (bool) Whether the user is staff.$post_id (int) The post id.wp_easycart_password_reset_token_lifetimeFilters how long a customer’s password reset link stays valid, in seconds.
$lifetime (int) Lifetime in seconds, default HOUR_IN_SECONDS.wp_easycart_recaptcha_readyFilters whether reCAPTCHA is shown and checked; return false to leave it off. By default it needs the switch on, both keys saved and a passed key test, and on checkout forms the Also protect checkout switch too.
(bool) $ready (bool) Whether reCAPTCHA can run, worked out as above.(string) $place (string) cart for the checkout forms, or empty for the account and other storefront forms.wp_easycart_region_requiredFilters whether a country’s region must be chosen at checkout and in My Account.
$required (bool) Whether the region is required.$iso2 (string) The country code.wp_easycart_restrict_access_without_redirectLets a page’s WP EasyCart Limit Access box lock the page even when none of its redirect addresses is set; return true to apply the limits anyway (signed-out visitors go to the account sign-in page, visitors without access to the store page).
false (bool) Apply the limits with no redirect address, false by default.get_the_ID() (int) The page id.wp_easycart_store_is_restrictedFilters whether the store is restricted for the current visitor because their customer role is not among the allowed roles.
$restricted (bool) True when the visitor’s role is not among the chosen ones.$level (string) The visitor’s EasyCart user level, empty when signed out.wp_easycart_subscriber_ipFilters the IP address recorded with a newsletter sign-up consent.
$ip (string) IP address.$source (string) Sign-up source slug.$email (string) Email address being signed up.wp_easycart_subscriber_sourceFilters the source slug recorded for a newsletter sign-up, such as checkout, account, register, newsletter, admin or other.
$source (string) Source slug.wp_easycart_subscriber_source_labelsFilters the display names for newsletter sign-up sources; an extension can add its own slug.
$labels (array) Source slug => label.wp_easycart_subscription_set_password_htmlFilters the set a password card shown after a purchase created the account (a subscription, or an order that needs an account).
$html (string) The markup.$user_id (int) The account id.wp_easycart_sync_wordpress_usersFilters whether the older WordPress User Sync plugin copies accounts itself.
$legacy (bool) Default false.wp_easycart_use_wordpress_userFilters whether the WordPress login decides who the store customer is.
$use_wordpress_user (bool) Default false.wp_easycart_user_activity_enabledFilters whether customer activity logging is enabled.
$enabled (bool) Default from the user activity setting.wp_easycart_user_activity_retention_daysFilters how many days customer activity is kept before it is purged; 0 keeps it forever.
$days (int) Retention days, default from the setting (365).wp_easycart_user_activity_should_logFilters whether a customer activity entry is recorded.
$should_log (bool) Default true.$user_id (int) Customer user id.$type (string) Activity type.$args (array) Activity details.wp_easycart_user_activity_store_ipFilters whether the visitor’s IP address is stored with customer activity; return false to store none.
$store_ip (bool) Default true.wp_easycart_user_activity_typesFilters the known customer activity types, letting extensions register their own.
$types (array) Activity type slug => array( label, icon ).wp_easycart_user_has_membershipFilters whether a store account holds a membership for any of the given products, the answer the [ec_membership] and [ec_membership_alt] shortcodes and the Limit Access page lock use. Asked only for a signed-in account and at least one product.
$has_membership (bool) The store’s answer: a subscription in a member status or an installment plan paid in full, or, for any other product, a paid order holding it.$user_id (int) The ec_user id.$ids (int[]) The product ids, after wp_easycart_membership_product_ids.wp_easycart_wordpress_user_create_store_accountFilters whether a store account is created for a WordPress user who has none.
$create (bool) Default true.$wp_user (WP_User) The WordPress user.wp_easycart_wordpress_user_store_accountFilters the existing store account matched by email to a WordPress user.
$store_user_id (int) Store account id with the same email.$wp_user (WP_User) The WordPress user.wpeasycart_account_email_change_errorFilters the reason a customer may not change their account email; an empty string allows the change.
$error (string) Empty or a short reason code.$store_user_id (int) Store account id.$new_email (string) New email.$old_email (string) Current email.wpeasycart_account_email_existsFilters whether a store account already uses an email address.
$exists (bool) True when a store account has the email.$email (string) The email address.wpeasycart_account_errorFilters the error message text shown on the account page for an account error code.
$error_text (string) Error message text.$error_code (string) The account_error code from the URL.wpeasycart_account_successFilters the success message text shown on the account page for an account success code.
$success_text (string) Success message text.$success_code (string) The account_success code.wpeasycart_custom_verify_new_passwordLets a plugin reject a new account password (on reset and on change) by returning true.
$is_invalid (bool) False by default; return true to reject the password.$new_password (string) The new password as entered, unsanitized.wpeasycart_forgot_password_linkFilters the forgot password link HTML shown on the account login page.
$link_html (string) HTML anchor to the forgot password page.wpeasycart_password_hash Enable WP Users ZapierFilters the password hash saved for a store customer.
$hash (string) Hash created by wp_easycart_hash_password.$password (string) The plain password the hash is made from.wpeasycart_password_needs_rehashFilters whether a stored password hash should be rehashed with the current algorithm.
$needs (bool) Whether the hash needs a rehash.$stored_hash (string) The stored hash.wpeasycart_password_verifyFilters whether a password entered by a customer matches the stored hash.
$verified (bool) Whether the password verified.$raw_password (string) Password as entered.$stored_hash (string) Stored hash.$user (object) The customer record.wpeasycart_register_js_functionFilters the JavaScript run when the shopper clicks the register button on the account registration form.
$js_function (string) JavaScript for the onclick attribute; defaults to ‘return ec_account_register_button_click2( );’.wpeasycart_show_account_pageFilters whether the account page is displayed.
$show (bool) Whether to show the page; defaults to true.wpeasycart_update_password_js_functionFilters the JavaScript run when the customer clicks the save button on the change password form.
$js_function (string) JavaScript for the onclick attribute; defaults to ‘return ec_account_password_button_click( );’.Subscriptions
Grouped by what they are about
59 filterswp_easycart_admin_customer_info_fields_list PROFilters the list of customer information fields shown on the admin subscription details screen.
$fields (array) Field definitions, each an array with keys such as name, type, label and value.wp_easycart_admin_paypal_info_fields_list PROFilters the list of PayPal information fields shown on the admin subscription details screen.
$fields (array) Field definitions, each an array with keys such as name, type, label and required.wp_easycart_admin_product_details_subscription_fields_listFilters the field definitions of the Subscription card in the product editor’s Type settings section.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_admin_product_info_fields_list PROFilters the field definitions in the product info section of the admin subscription details screen.
$fields (array) field definitions, each an array with name, type, label and related keyswp_easycart_admin_stripe_info_fields_list PROFilters the field definitions in the Stripe info section of the admin subscription details screen.
$fields (array) field definitions, each an array with name, type, label and related keyswp_easycart_admin_subscription_plans_details_basic_fields_list PROFilters the field definitions in the basic section of the admin subscription plan details screen.
$fields (array) field definitions, each an array with name, type, label and related keyswp_easycart_admin_subscription_terms_fields_list PROFilters the field definitions in the terms section (payment interval and related) of the admin subscription details screen.
$fields (array) field definitions, each an array with name, type, label and related keyswp_easycart_admin_subscriptions_details_basic_fields_list PROFilters the field definitions in the basic section of the admin subscription details screen.
$fields (array) field definitions, each an array with name, type, label and related keyswp_easycart_plan_group_product_title PROFilters the title WP EasyCart PRO gives a plan group tier’s product for one billing period when the group is saved; it is the product title shown at checkout, on receipts and in My Account.
$title (string) The tier name and Monthly or Yearly, joined by a dash, by default.$tier_name (string) The tier’s name.$interval (string) M1 (monthly) or Y1 (yearly).wp_easycart_plan_table PROFilters the finished HTML of a plan group’s pricing table drawn by WP EasyCart PRO, in either the cards or the compare-table layout.
$out (string) The table HTML.$group (object) The plan group: its plan row, settings and tiers, each with its products by billing period.$atts (array) Keys id, interval, layout and head from the shortcode or widget.wp_easycart_plan_table_htmlFilters the HTML of the [ec_plan_table] shortcode, which the Elementor Pricing Table widget also uses; WP EasyCart PRO draws the plan group’s pricing table here. Left empty, store managers see a note and visitors see nothing.
$html (string) Empty by default; return the table HTML.$atts (array) Keys id (the plan group), interval (m or y, the period the table opens on), layout (cards or table) and head (0 hides the group’s heading and intro).wp_easycart_stripe_subscription_billing_cycle_anchor PROFilters the billing cycle anchor sent to Stripe when a subscription is created; a truthy value is used as the anchor.
$billing_cycle_anchor (int|false) Anchor timestamp, default false.$product (object) The subscription product.$subscription_options (array) Chosen subscription options.$user (object) The customer.wp_easycart_stripe_subscription_insert_data PROFilters the data sent to Stripe when a subscription is created.
$gateway_data (array) Stripe subscription request data.$product (object) The subscription product.$user (object) The customer.$subscription_options (array) Chosen subscription options.wp_easycart_stripe_subscription_local_statusFilters the store’s status for a Stripe subscription as the webhook records it.
$local (string) Active, Failed, Canceled, canceling or paused.$subscription (object) The Stripe subscription.wp_easycart_stripe_subscription_status_mapFilters the map from Stripe subscription statuses to WP EasyCart subscription statuses used when a Stripe webhook syncs a subscription.
$status_map (array) Stripe status => WP EasyCart status, such as past_due => Failed.wp_easycart_stripe_subscription_trial_end PROFilters the trial end sent to Stripe when a subscription is created.
$trial_end Trial end value for the new subscription.$product (object) The subscription product.$subscription_options (array) Chosen subscription options.$user (object) The customer.wp_easycart_stripe_subscription_update_data PROFilters the data sent to Stripe when a subscription is updated.
$gateway_data (array) Stripe subscription update data.$product (object) The subscription product.$user (object) The customer.$subscription_item_id Stripe subscription item id.wp_easycart_stripe_subscriptions_log PROFilters whether Stripe subscription API requests and errors are logged to the response log.
$log (bool) Default true.wp_easycart_stripe_subscriptions_request_args PROFilters the HTTP request arguments for Stripe subscription API calls.
$args (array) wp_remote_request arguments, including headers, timeout and method.$method (string) HTTP method.$url (string) Request URL.wp_easycart_subscription_card_labelFilters the name My Account gives a card brand or payment method.
$label (string) The name.$key (string) The brand key.wp_easycart_subscription_change_gatewayFilters the Stripe gateway object that subscription plan changes and price moves send their Stripe requests through. Return an object with api() and get_subscription() methods, or false to turn the plan change engine off so a change applies at once through the older path.
$stripe (object|false) The store’s ec_stripe (WP EasyCart PRO) or ec_stripe_connect gateway, or false when the store does not take payments through Stripe.wp_easycart_subscription_change_ruleFilters when a subscription plan change applies and what it charges; WP EasyCart PRO answers for plan groups. During a free trial a change still applies now and charges nothing, unless the rule sets trial to end.
$rule (array) Keys when (now, renewal or none), charge (now, next or none), trial (keep or end), interval (same, longer or shorter) and direction (up, down or same). By default when is now, or none for a plan the plan list does not allow, and charge is now for another billing period, else next when the product prorates, else none.$from (array) The subscription now: subscription_id, product_id, period, length, price, quantity and trial.$to (array) The plan asked for: product_id, period, length, price, prorate and plan_id.$allowed (bool) Whether the plan list allows the move (its price order and the Customers can also move to a lower-priced product setting).wp_easycart_subscription_choices_in_summaryFilters whether the subscription page shows its choices (billing, the usage level) in the order summary; false shows them at the top of the page.
$inside (bool) Whether the choices go in the summary.wp_easycart_subscription_customer_canFilters whether a customer may perform an action on a subscription, such as changing the plan.
$allowed (bool) Whether the action is allowed.$action (string) The action being checked.$subscription (object) The subscription object.wp_easycart_subscription_grand_total_labelFilters the grand total label on the subscription cart page.
$label (string) Label text, default the cart grand total text.$product (object) The subscription product.wp_easycart_subscription_level_labelFilters a usage level as customers read it, such as “25,000 subscribers”.
$text (string) The label.$level (array|float) The level, or a number of units.$levels (array) The product’s levels.wp_easycart_subscription_level_titleFilters a subscription’s title with its usage level. Default the title and the level joined by ” · “.
$titled (string) The title with the level.$title (string) The product’s title.$label (string) The level.wp_easycart_subscription_levelsFilters a product’s usage levels. The result is cleaned and cached per product.
$levels (array|null) The stored levels, or null for none.$product_id (int) The product id.wp_easycart_subscription_member_statusesFilters the subscription statuses that still count as holding the product, read by memberships, the already-subscribed check and the subscription page’s reminder of what a customer already has.
$statuses (string[]) Active, trialing and canceling (cancelled at the end of the paid period) by default; an empty list falls back to Active.wp_easycart_subscription_modifiers_display_listFilters the subscription advanced option rows displayed in the subscription cart totals.
$options (array) Advanced options with labels.$product (object) The subscription product.wp_easycart_subscription_modifiers_pre_db_insertFilters the subscription advanced options just before they are saved with the subscription order.
$advanced_options (array) Selected advanced options from the cart data.$product (object) The subscription product.wp_easycart_subscription_options_guardFilters the result of checking the checkout session’s option choices for a subscription product, after choices that do not belong to it are taken out. A status of choose shows a notice linking to the product page instead of the subscription form, and stops the checkout.
$answer (array) Keys status (ok or choose), changed (the session was changed), removed (what was taken out: other, basic, variant, advanced) and missing (option set ids still to choose).$product (object) The subscription product.wp_easycart_subscription_page_existingLets an extension send a signed-in customer to change a subscription they already have instead of buying this product; return its subscription id to show a notice with a Change my plan link to My Account in place of the subscription form. WP EasyCart PRO answers for plan groups.
$subscription_id (int) 0 by default (buy as usual).$product (array|object) The product row.$user_id (int) The ec_user id.wp_easycart_subscription_page_ownedFilters the subscriptions a signed-in customer already has that the subscription page reminds them of above the form, when the product can be bought more than once; WP EasyCart PRO adds the plan group’s other plans.
$rows (object[]) Each with subscription_id, product_id and title, newest first; by default the customer’s subscriptions to this product in a member status.$product (array|object) The product row.$user_id (int) The ec_user id.wp_easycart_subscription_password_after_purchaseFilters whether a new customer goes straight to billing and payment, with the account made when they pay and the password chosen after (on the subscription page, and on a checkout that needs an account). Default from Settings > Checkout > Checkout form > New customers choose a password after paying.
$after (bool) Whether the password is chosen after paying.wp_easycart_subscription_payments_per_pageFilters how many past payments a subscription’s page in My Account shows at a time before Load more. Default 10; never below 1.
$per_page (int) Payments per page (10).$subscription (object) The subscription shown (the account page’s subscription).wp_easycart_subscription_plan_choicesFilters the plans My Account’s Change plan panel offers a subscription, in the order shown; WP EasyCart PRO orders a plan group’s plans by tier, then monthly before yearly.
$choices (array[]) Each with product_id, current, allowed, row (the plan’s product row), when (current, now or renewal) and note (plain text saying when it starts).$this (ec_subscription) The subscription.wp_easycart_subscription_price_formattingFilters the recurring billing text appended to a subscription product’s price.
$ret_string (string) Billing text, such as the interval and duration.$model_number (string) Product model number.$product_id (int) Product id.wp_easycart_subscription_price_notice_daysFilters the days of notice a subscriber gets before a price move takes them to the new price; the result is kept between 7 and 90.
$days (int) The days asked for: 30 by default, or the Notice chosen on the Price changes card of WP EasyCart PRO’s plan group editor.wp_easycart_subscription_prices_gatewayFilters the Stripe gateway class used for subscription prices and the store’s plan changes.
$gateway (ec_stripe|ec_stripe_connect|false) The store’s Stripe class.wp_easycart_subscription_purchase_detailsFilters the purchase details gathered for a subscription, such as quantity, signup fee and options.
$details (array) Purchase details.$subscription_id Subscription id.$current_product_id (int) Id of the product currently being viewed or managed.wp_easycart_subscription_quantity_allowedFilters whether a subscription product is sold by quantity.
$allowed (bool) Whether it is sold by quantity.$product (object|array|int) The product.wp_easycart_subscription_renewal_consentFilters whether the subscription page asks for a separate yes to automatic renewals (Settings > Checkout, A separate yes to subscription renewals).
$on (bool) The setting’s answer.$value (string) 1, 0 or auto.wp_easycart_subscription_renewal_consent_textFilters the words of the renewal box on the subscription page, such as I agree that my plan renews automatically until I cancel.
$text (string) The words.$product (ec_product) The product.$plan (array) The page’s figures.wp_easycart_subscription_renewal_noteFilters the note under the subscription page’s total that says the discount code stops before the subscription does and what it renews at; only asked when there is such a note. Return an empty string to hide it.
$text (string) The note in plain text: the first-payment or first-months wording, with the renewal price filled in.$product (object) The ec_product.$plan['coupon'] (array) The code on the checkout: row, stripe, code, amount_off, duration (once, repeating or forever) and months.$args (array) What the page passed: code, quantity, option_total, shipping_total and taxed.wp_easycart_subscription_shared_stripe_productLets a subscription product share a Stripe product with other products when it has no usable Stripe product of its own; return that Stripe product’s id and the product’s price is made under it. WP EasyCart PRO uses it so a plan group tier’s monthly and yearly products share one Stripe product.
$stripe_product_id (string) Empty by default (the product gets its own); a Stripe product id for the Stripe mode in use.$row (object) The product row.wp_easycart_subscription_short_checkoutFilters whether the subscription page asks only for the name, country, state and postcode when the subscription ships nothing. Default from Settings > Checkout > Checkout form > Short subscription checkout.
$enabled (bool) Whether the short checkout is on.wp_easycart_subscription_short_checkout_appliesFilters whether a subscription’s page uses the short form. Default true when the setting is on, nothing ships and no tax service needs the full address.
$applies (bool) Whether the short form applies.$product (ec_product) The subscription product.wp_easycart_subscription_short_tax_serviceFilters the tax service that keeps subscriptions on the full billing address because it needs the street. Return ” to use the short form with a service that rates by postcode.
$id (string) taxcloud, taxjar, another service id, or ”.wp_easycart_subscription_stripe_product_nameFilters the name kept on a subscription product’s Stripe product when its Stripe price is synced after a save; WP EasyCart PRO uses the plan group tier’s name.
$title (string) The product title.$row (object) The product row.wp_easycart_subscription_stripe_sets_defaultFilters whether a subscription product’s Stripe price becomes its Stripe product’s default price when the product is synced after a save; a Stripe product with no default price gets it anyway. WP EasyCart PRO returns false for a plan group tier’s yearly product, so the monthly price stays the default.
$sets_default (bool) True by default.$row (object) The product row.wp_easycart_subscription_summary_choicesFilters the choices listed under the item in the subscription page’s summary. Default an empty array; lines without options are dropped.
$lines (array) The choice lines.$product (ec_product) The subscription product.wp_easycart_subscription_summary_titleFilters the subscription item’s title in the summary while its choices show under it. An empty answer keeps the original title.
$title (string) The product’s title (with its level).$product (ec_product) The subscription product.wp_easycart_subscription_tax_rates_pre_insertFilters the tax rates applied to a subscription when it is created through Stripe at checkout.
$tax_rates (array) Stripe tax rates.$product (object) The subscription product.$is_vat (bool) True when the product has a VAT rate.$tax_ratio (float) Order tax total divided by the taxable product amount.$sub_total Order sub total.$shipping_total Shipping total.wp_easycart_subscription_trial_textFilters the free trial line on the subscription page, which says when the trial ends and what the first payment is then; only asked for a product with a free trial.
$text (string) The line in plain text, by default Your free trial ends on [date]. Your first payment of [price] is taken then., with the date and price filled in.$product (object) The ec_product.$plan (array) How the code on the checkout applies: amount (the renewal), first (the first charge), charges, months, coupon and args.wp_easycart_subscriptions_statusFilters the subscription gateway status; array values are merged over the status, letting an add-on report the gateway as ready.
$status (array) Subscription gateway status.wpeasycart_subscription_checkout_errorsLets a plugin add checkout error codes for a subscription purchase.
$codes (array) Error codes; empty by default. Add text through wpeasycart_cart_errors.$product (ec_product) The subscription product.$quantity (int) Quantity.$cartpage (ec_cartpage) The checkout page object.wpeasycart_subscription_couponLets a plugin supply its own coupon for a subscription product; return a coupon object to use it instead of the built-in coupon lookup.
$coupon (object|false) False by default, or a legacy-shaped coupon object.$promocode_id (string) The coupon code.$product_id (int) The subscription product id.wpeasycart_subscription_js_functionFilters the JavaScript run when the shopper clicks the submit button on the subscription checkout form.
$js_function (string) JavaScript for the onclick attribute; defaults to ‘return ec_validate_submit_subscription();’.Shipping
Grouped by what they are about
76 filtersecv2_shipping_carrier_statusFilters the connection status shown for a shipping carrier in the admin shipping settings; Pro answers with its connection checks.
$status (string) Status: connected, error, incomplete, disabled, or empty string for no answer.$carrier (string) Carrier being checked.ecv2_shipping_carrier_status_detailFilters the status and note shown for a shipping carrier in the admin shipping settings, optionally re-checking the connection.
$detail (array) Array with a status key (connected, error, incomplete, disabled) and a note key.$carrier (string) Carrier being checked.$refresh (bool) True to re-probe the carrier connection, such as after saving.wp_easycart_admin_product_details_shipping_fields_listFilters the shipping field definitions of the product editor: Ships to the customer, Charges and Where it goes in the Shipping section, and the Backorders card in Inventory.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_allow_shipping_methodFilters whether the shipping method step is shown. Return a falsy value to stop it displaying.
$allow (int) 1 to allow, default 1wp_easycart_carriersFilters the shipping carriers the order screens offer (Ship form, Fulfill window, Ship popover, Quick edit and Add tracking) and the tracking page each one links a tracking number to. Add, change or remove a carrier by key; an entry without a name is dropped.
$catalog (array) Key => name, aliases, countries (ISO codes it ships from, empty for worldwide), track (tracking page with %s for the number), label_url, label_sub, keywords (| separated, matched to the order’s shipping method), mark, bg and fg (the carrier tile).wp_easycart_default_product_weightFilters the weight a product without one counts as when packages are worked out.
$weight (float) In the store’s weight unit; 0 counts nothing.wp_easycart_ecv2_extensions_urlFilters the URL of the extensions page linked from the order Fulfill window when no label service is set up.
$url (string) Extensions page URL.wp_easycart_ecv2_label_carriersFilters the carriers offered when making a shipping label from an order.
$defs (array) Carrier key => label, sub, url, configured and keywords (| separated, matched against the order’s carrier and shipping method).$order (object) The order row.wp_easycart_ecv2_label_servicesFilters label services an extension draws itself in the order Fulfill window; a row keyed shippo, stamps or shipstation replaces the built-in link.
$value (array) Service slug => name, sub, logo, color, cta, onclick or url, and integrated; empty by default.$order (object) The order row.wp_easycart_ecv2_order_carriers PROFilters the carrier names suggested when adding tracking to an order, in the orders list and fulfill popover.
$carriers (array) Carrier names: the carriers of the store’s country and those on recent orders first.wp_easycart_ecv2_shipstation_activeFilters whether ShipStation is treated as active on the order Fulfill window.
$active (bool) True when the ShipStation extension class exists.wp_easycart_ecv2_stamps_activeFilters whether Stamps.com is treated as active on the order Fulfill window.
$active (bool) True when the Stamps.com extension class exists.wp_easycart_ecv2_tracking_url_map PROFilters the map of carrier names to tracking URL patterns used to link a tracking number; %s is replaced with the tracking number.
$map (array) Lower case carrier name => tracking URL with %s placeholder.wp_easycart_elementor_free_shipping_threshold PROFilters the free shipping threshold shown by the Elementor checkout widget (PRO).
$lowest (float) The lowest free shipping threshold found across the store’s shipping settings.wp_easycart_express_shipping_price_displayFilters the express shipping price number shown next to the express shipping checkbox in the cart.
$express_price (float) express shipping surcharge before currency formattingwp_easycart_live_rate_preFilters HTML output before the list of live shipping rates on the cart shipping step.
$html (string) HTML to print before the rates, empty by defaultwp_easycart_live_shipping_free_rateFilters the amount used when a live shipping service returns a free rate.
$rate (float) rate used for a free live rate, 0 or the cart handling feewp_easycart_method_rate_preFilters HTML output before the list of method-based shipping rates on the cart shipping step.
$html (string) HTML to print before the rates, empty by defaultwp_easycart_optimalship_rate OptimalShipFilters the shipping rate a shopper pays for an OptimalShip quote.
$rate (float) what the shopper pays$quote (array) the OptimalShip quote$request (array) the cart data sentwp_easycart_optimalship_request OptimalShipFilters the query parameters sent to the OptimalShip API for a rate quote.
$params (array) query parameters$args (array) the quote argumentswp_easycart_order_delivery_trackedFilters whether an order has a tracked delivery, meaning a label extension or fulfillment partner recorded a package on its way.
$tracked (bool) true when a package on its way was recordedorder id (int) the order IDwp_easycart_order_signatureFilters the delivery signature requirement for an order’s shipment.
$signature (string) Empty string, standard or adult.$order_id (int) The order id.wp_easycart_package_carrier_templatesFilters the carrier boxes a shipping label extension can buy labels for, offered under Settings, Shipping, Boxes.
$templates (array) Box code => label, such as ‘USPS_MediumFlatRateBox1’ => ‘USPS Medium Flat Rate Box’.wp_easycart_package_linesFilters the order line rows used when packing an order into boxes.
$out (array) Line rows.$order_id (int) The order id.wp_easycart_packed_packagesFilters the packages produced after order lines are packed into boxes.
$packages (array) The packed packages.$lines (array) The order lines that were packed.wp_easycart_region_optional_countriesFilters the countries where choosing a region is optional while the store has not decided under Settings > Countries & Regions. Default GB, DE and NZ.
$countries (array) ISO 3166-1 alpha-2 codes.wp_easycart_royalmail_currency_ok PROFilters whether the store’s currency suits Royal Mail rates, which are priced in pounds; Royal Mail is not quoted while this is false. Return true for a store that converts its prices.
$ok (bool) True when the store’s base currency is GBP.$currency (string) The store’s base currency code.wp_easycart_royalmail_keys PROFilters the public keys that may sign the Royal Mail price file PRO fetches from WP EasyCart Connect; a file signed with a key not in the list, or whose signature does not verify, is not used.
self::KEYS (array) Key id => base64 Ed25519 public key; rm1 by default.wp_easycart_royalmail_prices_url PROFilters the address PRO fetches the newest signed Royal Mail price data from, once a day while Royal Mail is on.
self::FEED_URL (string) The feed address, https://connect.wpeasycart.com/rates/v1/royalmail.json by default.wp_easycart_royalmail_rate PROFilters one Royal Mail service’s price for the cart’s parcels before it is offered at checkout or shown by Try a parcel in the Royal Mail settings. VAT removal, the collection charge and the service’s own price settings (markup, fixed price, free over) are already applied.
$price (float) The price, rounded to 2 decimals.$service (string) The service key, such as tracked_48 or intl_standard.$parcels (array) The parcels, each with g (grams), dims (cm, largest first; empty when not measured) and floor (smallest format allowed).$request (array) The live rate request, with the destination country and the subtotal.wp_easycart_royalmail_today PROFilters today’s date in the UK, which picks the Royal Mail price version in effect and the next one waiting for its date.
$today (string) Today as Y-m-d in Europe/London.wp_easycart_setup_shipping_pathsFilters the ways to ship the Shipping settings page offers for the store’s country.
$ways (array) The ways.$cc (string) The store’s country code.wp_easycart_setup_shipping_stepsFilters the set-up steps on the Shipping settings page for the chosen way to ship.
$steps (array) Each: key, state (done, todo, warn or optional), title, text and html (escaped).$way (string) The way key.wp_easycart_shipping_get_rate_dataFilters the shipping rates offered to the shopper, as a list of rate rows.
$rates (array) Shipping rate rows, each with an id and amount.wp_easycart_shipping_has_custom_shipping_optionsFilters whether the store reports having shipping options when custom shipping options are being printed.
$has_options (bool) Default true.wp_easycart_shipping_is_live_basedFilters whether a shipping method row is treated as live-rate based (carrier rates fetched in real time).
$is_live_based (bool) True when the row uses UPS, USPS, FedEx, Australia Post, DHL or Canada Post.wp_easycart_shipping_live_typeFilters the live shipping carrier type slug for a shipping method row.
$live_type (string) Carrier slug such as ups, dhl or canadapost, or none.wp_easycart_shipping_method PROFilters the store’s shipping calculation method, such as price or weight.
$shipping_method (string) The shipping method saved in the settings.wp_easycart_shipping_price_displayFilters the price shown next to a shipping option on the cart shipping step.
$price Shipping price (with handling for Fraktjakt options).$method_id Id of the shipping option or method.wp_easycart_shipping_rate_carriersFilters the list of carriers offered on the admin shipping rates screen.
$carriers (array) Carrier definitions with mark and colors.wp_easycart_shipping_receipt_max_bytesFilters the largest shipping receipt photo accepted, in bytes. Default 5242880 (5 MB).
$max (int) The size limit in bytes.wp_easycart_shipping_receipts_dirFilters the private folder shipping receipt photos are kept in. Default the data folder’s receipts folder, else wp-content/uploads/wp-easycart-receipts.
$dir (string) Absolute folder path.wp_easycart_shipping_should_print_custom_optionsFilters whether custom shipping options are printed instead of the built-in shipping options.
$should_print (bool) Default false; return true to use custom options.wp_easycart_shipping_tabsFilters the tabs across the shipping settings pages (Shipping, Rates, Carriers & labels).
$tabs (array) Key => array( label, url ).wp_easycart_shipping_zone_ruleFilters whether a shopper in one of your shipping zones sees only that zone’s prices or also the prices for everywhere else (Settings > Rates).
$rule (string) only or both.wp_easycart_shippo_oauth_available ShippoFilters whether the Connect with Shippo button is offered.
$available (bool) True when the WP_EASYCART_SHIPPO_OAUTH constant is set and true.wp_easycart_shippo_order_payload ShippoFilters the order data sent to Shippo when an order is created there.
$payload (array) Shippo order payload.$order (object) The ec_order row.$lines (array) ec_orderdetail rows the store ships, excluding fulfillment partner lines.wp_easycart_shippo_shipment_payload ShippoFilters the shipment data sent to Shippo when rates or a label are requested.
$payload (array) Shippo shipment payload.$order (object) The order row.$args (array) Package choices.wp_easycart_stamps_can_connect Stamps.comFilters whether the Stamps.com connect button is available.
$available (bool) Whether the connection service reports it is available for the current environment.wp_easycart_stamps_insurance Stamps.comFilters who insures packages on Stamps.com labels: ParcelGuard when the Stamps.com account offers it, else the carrier’s own cover. While ParcelGuard’s terms are not accepted (terms false), an insured label cannot be bought.
$state (array) Keys provider (parcel_guard, carrier or stamps_com) and terms (true, false, or null while unknown).$account (array|null) The Stamps.com account, or null when it is not connected or not known.wp_easycart_stamps_service_url Stamps.comFilters the base URL of the WP EasyCart connection service for Stamps.com.
$url (string) Base URL, default https://connect.wpeasycart.com/stamps/.wp_easycart_stamps_shipment Stamps.comFilters the shipment fields sent to Stamps.com when rates or a label are requested.
$payload (array) Stamps.com SERA rate or label fields.$order (object) The order row.$args (array) Package choices.wp_easycart_store_countryFilters the country the store ships from, which lists that country’s carriers first on the order screens and helps suggest a carrier from an order’s shipping method. It also decides whether the setup wizard leads with Royal Mail (GB) and whether the EU withdrawal button starts switched on.
$country (string) Two-letter ISO code, or ”: the checkout’s default country, else the Stripe business country, else the region of the site language (en_GB gives GB).wp_easycart_trigger_rateFilters the price of a shipping rate as it is charged: a price, weight, quantity or percentage based tier, or a method or live rate; WP EasyCart PRO’s Offers take shipping discounts off here.
$rate The rate’s price.$type (string) The tier type (price, weight, quantity or percentage), or a method or live rate’s id.wp_easycart_ups_relay_url PROFilters the WP EasyCart Connect address PRO uses to link a UPS account (Link your UPS account) and renew its tokens, for both the /ups-v3/ relay and the older /ups/ one.
self::BASE (string) https://connect.wpeasycart.com by default; a trailing slash is removed.wp_easycart_usps_min_box PROFilters the minimum box size added as padding to USPS rate requests.
$pad (array) Keys length, width and height, default 0 each.wp_easycart_weight_unit_extensionsFilters the label and rate extensions checked on the store details settings for versions too old to read ounces and grams. By default it lists Shippo, ShipStation, Stamps.com and OptimalShip, each with the first version that reads them.
$needs (array) Version constant => array( name, minimum version ).wpeasycart_dhl_destination_city PROFilters the destination city sent to DHL when requesting live shipping rates.
$city (string) Destination city; falls back to the postcode when the city is empty.$zip (string) Destination postcode.$country (string) Destination country code.wpeasycart_dhl_rate_request PROFilters the request body sent to DHL when requesting a live shipping rate.
$body (array) The DHL rates request body.wpeasycart_fedex_cart_item_list PROFilters the list of cart items used to build a FedEx rate request.
$cart (array) Cart item objects.wpeasycart_live_based_codes PROFilters the live shipping rate rows that extensions add to the available shipping methods.
$live_based (array) Live rate rows; empty by default in the label lookup.wpeasycart_live_rate_cache_days PROFilters how many days saved live shipping rates are kept before they are purged.
$days (int) Number of days; defaults to 18.wpeasycart_live_rate_providers PROLets an extension register its own live shipping rate providers.
$providers (array) Provider slug => array with ready flag and callable quote; empty by default.wpeasycart_live_shipping_carrier_ready PROFilters whether a live shipping carrier is treated as set up and ready to quote.
$ready (bool) Whether the carrier is ready.$carrier (string) Carrier key.wpeasycart_live_shipping_carrier_units PROFilters the weight and size units a live rate carrier reads.
$reads (array|null) weight (lb or kg) and dim (in or cm), or null for a carrier WP EasyCart does not know (it gets the store’s units).$carrier (string) The carrier.wpeasycart_live_shipping_countries_without_postcode PROFilters the list of country codes that do not use postcodes for live shipping quotes.
$countries (array) Two-letter country codes.wpeasycart_live_shipping_failure_pause PROFilters how many seconds a live shipping carrier is paused after a request failure.
$seconds (int) Pause length; 0 or less disables the pause.$carrier (string) Carrier key.$reason (string) Reason logged with the gateway log.wpeasycart_live_shipping_parallel_requests PROFilters whether live shipping carrier requests may be sent in parallel.
$parallel (bool) Whether parallel requests are allowed; defaults to true.wpeasycart_live_shipping_rate_reuse_seconds PROFilters how long a saved live shipping quote may be reused for an identical cart and destination.
$seconds (int) Seconds; defaults to 30 minutes.wpeasycart_live_shipping_rate_signature PROFilters the data used to build the signature that tells whether saved live shipping rates are still valid for a cart.
$signature_data (array) Data hashed for the signature: carriers, providers, rows and config.$cart (array) Cart items.wpeasycart_live_shipping_rates PROFilters the live shipping rates so an extension can add or change rates for a package.
$rates (array) Rates found so far.$destination_zip (string) Destination postcode.$destination_country (string) Destination country code.$weight (float) Package weight.$length (float) Package length.$width (float) Package width.$height (float) Package height.$declared_value (float) Declared value.$items (array) Cart items in the package.wpeasycart_live_shipping_request PROFilters the HTTP request spec used for a live shipping carrier call before it is sent.
$spec (array) Request spec such as url, body, timeout and options.wpeasycart_live_shipping_unit_factors PROFilters what a weight and a size in the store’s units are multiplied by before they are sent to a live rate carrier. Default 1.0 each (sent as entered); a value that is not above zero falls back to 1.0.
$factors (array) weight and dim.$carrier (string) The carrier.$store (array) The store’s units.$reads (array|null) The units the carrier reads.wpeasycart_method_based_shippingFilters the method-based shipping rate rows available at checkout.
$method_based (array) Method-based shipping rate rows.wpeasycart_shipping_class_keeps_extension_rateFilters whether an extension’s live shipping rate is kept when shipping class rates apply.
$keep (bool) True by default.$live_based (array) The rate’s row.$cart (array) Cart items.wpeasycart_shipping_method_nameFilters the label of the shipping method the shopper chose.
$name (string|null) The rate’s label, or null when none was found.$ship_id (string) The chosen method’s id.Taxes and fees
Grouped by what they are about
42 filterswp_easycart_admin_fee_ideas PROFilters the ready-made ideas the New flex-fee window offers, such as a wholesale discount for a customer role (WP EasyCart PRO).
$ideas (array) Each: key, label, text, set (the fee values it fills in) and focus.wp_easycart_admin_fee_payment_types PROFilters the payment types a fee can be limited to in the admin fee settings.
$types (array) Payment type value => label, for example card, affirm and klarna.wp_easycart_admin_product_details_tax_fields_listFilters the field definitions of the Tax card in the product editor’s Pricing section.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_alt_tax_calculateFilters the alternative tax calculation results so a custom tax provider can supply its own totals.
$alt_tax_list (object) tax results with tax_total, tax_rate, duty_total, taxable_subtotal, vatable_total and related values$cart_subtotal (float) the cart subtotal$cart (object) the cart$shipping_total (float) the shipping total$tax_settings (object) the store’s tax settingswp_easycart_avatax_address_lookups_per_hour AvaTaxFilters the store-wide limit of AvaTax address lookups allowed per hour (default 600).
$limit (int) lookups per hour, default 600wp_easycart_avatax_exemption_certificate AvaTaxFilters the certificate (Avalara’s CertificateModel) sent to Avalara for a checkout exemption claim, just before it is created there.
$model (array) The certificate model.$claim (object) The exemption claim.wp_easycart_avatax_exemption_max_bytes AvaTaxFilters the largest exemption certificate file accepted, in bytes. Default 5242880 (5 MB); the result is never below 102400.
$bytes (int) The size limit in bytes.wp_easycart_avatax_exemption_reasons AvaTaxFilters the exemption reasons the checkout offers, in the store’s order.
$out (array) Reason code => shopper-facing name.wp_easycart_avatax_shipped_statuses AvaTaxFilters the order status ids that AvaTax treats as shipped.
$list (array) status ids, 2 and 18 plus the delivered status when setwp_easycart_canada_tax_labelFilters the label shown for a Canadian tax type such as GST or PST.
$label (string) the tax label, from the language setting or a default$type (string) the tax type$state (string) the province or statewp_easycart_cart_taxfree AvaTaxFilters whether the cart is treated as tax free when the tax calculator is created.
$taxfree (bool) Whether the cart is tax free.wp_easycart_enable_alt_taxFilters whether the alternate tax calculation method is used instead of the standard one when the tax object is built.
$enabled (bool) false by default; return true to use calculate_alt_tax()wp_easycart_eu_vat_ratesFilters the EU standard VAT rates WP EasyCart fills in.
$rates (array) ISO country code => percent.wp_easycart_fee_payment_typeFilters the payment type used to decide whether a fee rule that is limited to payment types applies to the cart.
$type (string) payment type$method (string) the cart session’s payment methodwp_easycart_hmrc_relay_urlFilters the address of the HMRC relay used to check UK VAT numbers. Default https://connect.wpeasycart.com/hmrc-v1/api.php.
$url (string) The relay address.wp_easycart_is_duty_enabledFilters whether duty is enabled for the current cart.
$is_duty_enabled (bool) true when duty is enabled and the duty country matcheswp_easycart_is_tax_enabledFilters whether tax is treated as enabled, which controls whether the Tax row shows.
$is_tax_enabled (bool) true when any tax method (state, country, all, TaxCloud, TaxJar or a tax service) is onwp_easycart_is_vat_enabledFilters whether VAT is treated as enabled.
$is_vat_enabled (bool) true when VAT is enabled in settingswp_easycart_order_pay_feesFilters the Flex-Fees an order’s pay link adds for a way to pay.
$fees (array) The fees, each with label, rate and amount.$order (object) The order.$fee_type (string) The payment type (card, third_party, klarna and so on).wp_easycart_product_details_price_no_vat_displayFilters the HTML for a product’s price display when prices are shown excluding VAT.
$output (string) Price HTML.$price The price without VAT.$list_price The list price without VAT.$tax_price The price with tax.$tax_list_price The list price with tax.wp_easycart_product_details_price_vat_displayFilters the HTML for a product’s price display when prices are shown including VAT.
$output (string) Price HTML.$price The price.$list_price The list price.$tax_price The price with tax.$tax_list_price The list price with tax.wp_easycart_product_details_vat_rateFilters the VAT rate used to display prices on the product page.
$vat_rate The VAT rate for the product.$product (object) The product.wp_easycart_quebec_compound_qstFilters whether Quebec’s QST is compounded on top of GST for shipping to QC.
$compound (bool) False by default.wp_easycart_setup_tax_stepsFilters the set-up steps on the Taxes settings page for the chosen way to charge tax.
$steps (array) Each: key, state (done, todo, warn or optional), title, text and html (escaped).$way (string) The way key.wp_easycart_setup_tax_waysFilters the ways to charge tax the Taxes settings page offers for the store’s country.
$ways (array) The ways.$cc (string) The store’s country code.$system (string) us, canada, vat or ”.wp_easycart_tax_class_rateFilters a tax class’s rate for a country. Null or ” means the standard rate.
$rate (float|null) Percent, or null for the standard rate.$class (string) The tax class.$country (string) ISO country code.wp_easycart_tax_classesFilters the tax classes besides the standard rate. A class with an ec_option_tax_class_<key>_rate option charges that rate.
$classes (array) Key => label.wp_easycart_tax_providersFilters the list of registered tax providers, letting an add-on register its own.
$providers (array) Provider id => wp_easycart_tax_provider object, starts empty.wp_easycart_tax_setup_changesFilters what applying the recommended tax settings would change.
$out (array) Changes, each with key, label, from, to and why.$rec (array) The recommendation.$now (array) The settings now.wp_easycart_tax_setup_recommendationFilters the recommended tax settings for a store in a country.
$rec (array) The recommendation (settings holds the values applying it writes).$cc (string) ISO country code.$choices (array) The store’s choices.wp_easycart_tax_setup_us_statesFilters the US state rates and shipping rules the tax recommendation uses.
$states (array) State code => array( rate, ship 1 or 0, check 1 or 0 ).wp_easycart_tax_setup_vat_countriesFilters the VAT and GST countries the tax recommendation covers.
$countries (array) Country code => array( rate, area, threshold ).wp_easycart_tax_shipping_countryFilters the shipping country used to calculate taxes.
$shipping_country (string) Uppercase shipping country code.wp_easycart_tax_shipping_stateFilters the shipping state used to calculate taxes.
$shipping_state (string) Uppercase shipping state code.wp_easycart_tax_test_quoteFilters the quote a tax service gives for the sample cart for one of the tax test addresses on the Taxes settings page (also used by the AI assistant’s tax tools). Return a quote or WP_Error to answer for a service; null lets WP EasyCart ask it.
null (wp_easycart_tax_quote|WP_Error|null) The quote, or null.$service['id'] (string) The service id, such as taxcloud or taxjar.$request (wp_easycart_tax_request) The sample sent to the address.wp_easycart_tax_totalFilters the sales tax total calculated for the cart.
$tax_total (float) State, country and all-region tax added together.$taxable_subtotal Taxable subtotal.$tax_context Tax calculation context.$tax (object) The ec_tax object.wp_easycart_vat_business_rateFilters whether the business VAT rate applies to a VAT number.
$applies (bool) Whether it applies.$number (string) The VAT number.$country (string) The delivery country.$billing_country (string) The billing country.wp_easycart_vat_nameFilters what the store’s value added tax is called. Any value other than VAT or GST falls back to VAT.
$name (string) VAT or GST.wp_easycart_vat_number_statusFilters a VAT number check so it can be answered without asking VIES, for example from another service. Default null, which runs the normal check; return valid, invalid or unknown to answer it.
$status (string|null) Null to run the normal check.$number (string) The VAT number.wp_easycart_vat_reverse_chargeFilters whether an order’s documents say “Reverse charge”.
$applies (bool) Whether it applies.$order (object) The order.wp_easycart_vat_unverified_business_rateFilters whether a VAT number VIES could not check (it did not answer) still gets the business rate. Default false, so the business pays VAT and claims it back.
$allow (bool) Whether to allow the business rate (false).$number (string) The VAT number.wpeasycart_format_vat_rateFilters the formatted VAT rate text shown at checkout.
$formatted (string) Formatted rate in parentheses, such as (20%).$vat_rate (float) The VAT rate.Payments
Grouped by what they are about
79 filterswp_easycart_admin_payment_fileFilters the path of the settings template file loaded for a payment gateway in the admin payment settings.
$file (string) Path to the gateway settings template.$key (string) Gateway key.wp_easycart_admin_third_party_gatewaysFilters the third-party payment gateways the admin recognizes, adding to the keys found in the gateway registry.
$third_party_gateways (array) legacy third-party gateway list, keyed by gateway keywp_easycart_authorize_accept_js_allow_legacy_fallback PROFilters whether Authorize.net falls back to posting the raw card number when Accept.js did not run (default false).
$allow (bool) false by defaultwp_easycart_authorize_accept_js_enabled PROFilters whether Authorize.net Accept.js tokenization is enabled.
$enabled (bool) true when Pro is active, Authorize.net is the process method and the login id and client key are setwp_easycart_authorize_accept_js_load PROFilters whether the Authorize.net Accept.js script is loaded on the current page.
$load (bool) true on the checkout payment step, or on account pages other than the account page itselfwp_easycart_authorize_accept_js_transaction_request PROFilters the Authorize.net transaction request array sent with an Accept.js payment.
$transaction (array) the transactionRequest data$order_id (int) the order idwp_easycart_bank_details_linesFilters the bank details lines a shopper sees.
$lines (array) Lines, each array( label, value ).$order_id (int|string) The order number, or ”.$saved (array) The saved scheme and fields.wp_easycart_card_payment_typesFilters the payment types that count as a card payment for flex fees.
$types (array) payment types, default card, apple_pay, google_pay and linkwp_easycart_checkout_payment_method_allowedFilters whether a payment method can pay this checkout; return false to take a method away for this cart. It decides the payment choices, the method the checkout starts on, and Bill later (Pay by bank transfer).
true (bool) Allowed, true by default.(string) $method (string) credit_card, manual_bill, third_party or affirm.$this (ec_cartpage) The checkout.wp_easycart_checkout_tokenized_cardFilters the card a gateway tokenized in the browser for this payment. Default an empty array; an answer without a bin and last4 is ignored.
$card (array) Empty, or bin, last4, exp_month, exp_year and brand.$gateway (string) The gateway (ec_option_payment_process_method).wp_easycart_ecv2_gateway_link PROFilters the link to a payment in the payment gateway’s own dashboard, shown on the order details payment panel.
$deep_link (string) Gateway dashboard URL for the transaction.$gateway (string) The order’s payment gateway.$order (object) The order.wp_easycart_ecv2_order_is_test_payment PROFilters whether an order’s payment was made in the gateway’s test mode (PRO).
$is_test (bool) Whether the payment looks like a test payment.$order (object) The order row.wp_easycart_gateway_webhook_log_sizeFilters how many notifications a gateway’s webhook log keeps. The same list is checked to ignore an event that was already handled, and no more than 10 rejected requests are kept whatever the size.
50 (int) Entries kept, default 50; at least 1 is always kept. For Square, wp_easycart_square_webhook_log_size runs on the result.$gateway (string) Gateway key, square or paypal.wp_easycart_hook_urlFilters the address a payment gateway sends its notifications to (?wpeasycarthook=paypal-webhook, stripe-webhook and so on), as shown in the gateway settings and sent to the gateway. A site installed in a folder gets a slash before the query, because gateways do not follow the redirect.
$url (string) The notification address: the site address, then ?wpeasycarthook= and the hook.$hook (string) The hook: paypal-webhook, stripe-webhook, redsys-webhook or sagepay-webhook.wp_easycart_intuit_service_url PROFilters the base URL of the WP EasyCart connection service for Intuit Payments.
$url (string) The base URL, default https://connect.wpeasycart.com/intuit-v2/wp_easycart_is_stripe_sandbox PROFilters whether Stripe should run in sandbox mode, which decides whether sandbox or live Stripe product IDs are read and saved.
$is_sandbox (bool) false by defaultwp_easycart_manual_payment_allowedFilters whether the shopper can choose Bill later (Pay by bank transfer), after the store’s Bill later roles are checked.
$allowed (bool) True when the shopper’s role is one Bill later is offered to.$role (string) The shopper’s role, guest when not signed in or the account is pending.array_values( $roles ) (array) The roles chosen in the setting; empty means everyone.wp_easycart_nmi_allow_card_form_fallback PROFilters whether NMI may charge a typed card number when the secure card fields did not run (for example a blocked script or JavaScript off). Default false, so the payment fails instead.
$allow (bool) Whether to fall back to the typed card (false).wp_easycart_nmi_collect_js_enabled PROFilters whether NMI’s secure card fields (Collect.js) are used. Default true when NMI is the gateway and both the security key and the tokenization key are saved.
$enabled (bool) Whether the secure fields are on.wp_easycart_nmi_field_css PROFilters the styles passed to NMI’s secure card fields on the checkout page.
$css (array) field (font-size 16px, color #222222, line-height 42px, height 42px, padding 0 12px), invalid (color #b91c1c) and focus (color #111111).wp_easycart_nmi_gateway_host PROFilters the NMI gateway’s host name. Default the saved gateway host, else secure.networkmerchants.com.
$host (string) The host name.wp_easycart_nmi_gateway_url PROFilters the NMI gateway’s base address. Default https:// followed by the gateway host.
$url (string) The base address.wp_easycart_nmi_load PROFilters whether NMI’s secure card field scripts load on the current storefront page. Default true on the checkout payment step; with the one-page checkout, true on any page except the account page.
$load (bool) Whether to load the scripts.wp_easycart_nmi_payer_auth_amount_units PROFilters the units the amount is passed in for NMI Payer Authentication (3-D Secure) in the checkout script. Default major.
$units (string) The amount units (major).wp_easycart_nmi_payer_auth_enabled PROFilters whether typed cards are checked with NMI Payer Authentication (3-D Secure) before they are charged. Default true when the secure fields are on, the Payer Authentication setting is on and a checkout key is saved.
$enabled (bool) Whether Payer Authentication is on.wp_easycart_nmi_sale_request PROFilters the fields of the NMI sale request for a tokenized card payment, just before it is sent.
$data (array) The request fields.$order_id (int) The order id.$type (string) The card type posted with the token (for example inline).wp_easycart_order_pay_methodsFilters the payment methods a customer can use on an order pay link.
$out (array) Enabled method slugs, such as paypal and manual.wp_easycart_payfast_itn_source_ok PROFilters whether a PayFast ITN came from PayFast’s servers. Default null, which makes WP EasyCart check the address against PayFast’s hosts by DNS.
$from_payfast (bool|null) Null to run the check.$remote (string) The address the ITN came from.wp_easycart_payment_gateway_catalogFilters the catalog of payment gateways listed on the Payments settings screen.
$catalog (array) Gateway key => gateway definition.wp_easycart_payment_gateway_countriesFilters the countries each gateway takes payments for stores in. A gateway with no countries is available everywhere.
$map (array) Gateway key => ISO country codes.wp_easycart_payment_gateway_formFilters the settings drawer form definition for a payment gateway; return an array with sections and a save callback to supply one.
$form (array|null) Form definition, null by default.$key (string) Gateway key.$gw (array) The gateway definition.wp_easycart_payment_gateway_statusFilters the connection and readiness status calculated for a payment gateway on the Payments screen.
$s (array) Status flags such as connected, live_ready, test_ready and locked.$gw (array) The gateway definition.wp_easycart_payment_local_gatewaysFilters the gateways stores in a country choose most, after Stripe, Square, PayPal and Amazon Pay.
$keys (array) Gateway keys.$country (string) ISO country code or ”.wp_easycart_payment_older_gatewaysFilters the gateways listed under Older gateways in Add or change a gateway on the Payments screen, a group that stays closed until the merchant opens it or searches. Those gateways stay fully usable, and one already in use shows as usual.
array(...) (string[]) Gateway keys, such as stripe, paypal_pro, sagepay, realex and custom.wp_easycart_payment_partner_gatewaysFilters the partner gateways recommended for a gateway role on the Payments screen.
$list (array) Gateway key => benefit text.$role (string) The gateway role, such as third_party.wp_easycart_payment_recommended_gatewaysFilters the gateways tagged Recommended on the Payments screen and listed first, in this order, under Add or change a gateway; keys missing from the gateway catalog are dropped.
array(...) (string[]) Gateway keys, default stripe_connect, square, paypal, amazonpay and authorize.wp_easycart_payment_retired_gatewaysFilters the gateways that no longer take payments.
$retired (array) Gateway key => why it is retired.wp_easycart_payment_test_modesFilters the names of payment methods running in test mode, shown in Diagnostics.
$names (string[]) Gateway names.wp_easycart_paynow_za_vendor_key PROFilters the Netcash Pay Now software vendor key sent with a payment (m2). Default Netcash’s default key.
$key (string) The vendor key.wp_easycart_paypal_connect_urlFilters the base address of WP EasyCart Connect for PayPal, used for every relay call a store connected through the WP EasyCart PayPal app makes and for the Connect PayPal onboarding link.
self::BASE (string) https://connect.wpeasycart.com by default; a trailing slash is removed.wp_easycart_paypal_connect_versionFilters which version of WP EasyCart Connect’s PayPal relay the store calls; return v2 to go back to the older /paypal-v2/ scripts, which are called unsigned.
'v3' (string) v3 by default; any value other than v2 means v3.wp_easycart_paypal_ipn_verify_urlFilters where PayPal Standard IPNs are confirmed (cmd=_notify-validate). Default PayPal’s IPN check for the store’s live or sandbox mode.
$url (string) The verification URL.wp_easycart_paytrace_enabled PROFilters whether the PayTrace gateway is treated as enabled.
$enabled (bool) True when PRO is loaded, PayTrace is the live gateway and API credentials are saved.wp_easycart_paytrace_integrator_id PROFilters the PayTrace integrator ID sent with PayTrace requests.
self::INTEGRATOR_ID (string) The built-in integrator ID.wp_easycart_paytrace_load PROFilters whether the PayTrace Protect.js script loads on the current page.
$load (bool) True on the checkout payment step (and other pages except the account page).wp_easycart_paytrace_sale_request PROFilters the request body sent to PayTrace to charge a sale.
$body (array) The sale request data.$order_id (int) The order id.wp_easycart_paytrace_styles PROFilters the style settings passed to the PayTrace hosted card fields at checkout.
$styles (array) Style settings keyed by field: cc, code, exp and body.wp_easycart_refundable_gateways PROFilters the list of gateways WP EasyCart can refund through their API; other gateways use the record-only refund flow.
$gateways (string[]) Gateway slugs, such as stripe, square and paytrace.wp_easycart_setup_payment_methodsFilters the ways to pay listed on the Payments settings page, one row each.
$rows (array) Each: key, label, via, state (on, off, need, na, pro or setup) and control (escaped HTML).wp_easycart_setup_payment_stepsFilters the set-up steps on the Payments settings page for the chosen card processor.
$steps (array) Each: key, state (done, todo, warn or optional), title, text and html (escaped).$way (string) stripe, square or other.wp_easycart_setup_payment_waysFilters the card processor choices on the Payments settings page.
$ways (array) Key => title, desc, plan and gateway.wp_easycart_square_apple_pay_domainFilters the domain Apple Pay is set up for on a Square store. Default the host of the site’s home address.
$host (string) The domain.wp_easycart_square_apple_pay_file_urlFilters where Square’s Apple Pay domain association file is downloaded from. Default Square’s address.
$url (string) The download URL.wp_easycart_square_apple_pay_liveFilters whether the store takes live payments through Square; Apple Pay’s domain is set up only then.
$live (bool) The store’s answer.wp_easycart_square_apple_pay_statusFilters what the store owner is told about Apple Pay on a live Square store.
$out (array) tone, title, text, manual, replace, check and short.$state (array) The last check.wp_easycart_square_apple_pay_web_rootFilters the folder whose .well-known folder Apple reads, where the domain association file is written.
$root (string) The folder path, ” when unknown.wp_easycart_square_order_modifier_nameFilters the name a cart line’s option is sent to Square with, as an order line modifier. A choice is its name; a typed value is “Label: value”. The result is cut to 255 characters.
$name (string) The modifier name.$advanced_option (object) The cart line’s option.wp_easycart_square_relay_urlFilters the base address of WP EasyCart Connect for Square, used for every call a store connected through the WP EasyCart Square app makes and for its Connect Square links.
self::BASE (string) https://connect.wpeasycart.com by default; a trailing slash is removed.wp_easycart_square_webhook_log_sizeFilters how many Square webhook events are kept in the webhook log, after wp_easycart_gateway_webhook_log_size.
$size (int) Maximum log entries, 50 by default.wp_easycart_stripe_amazon_pay_rules PROFilters where Stripe offers Amazon Pay: the store countries and the currencies each takes (WP EasyCart PRO).
$rules (array) Country => currencies.wp_easycart_stripe_ca_bundle PROFilters the path of the CA certificate bundle used for Stripe API requests.
$ca_bundle (string) Path, default the WordPress certificates ca-bundle.crt.wp_easycart_stripe_capture_method PROFilters the capture method used when a Stripe payment intent is created.
$capture_method (string) Default automatic.wp_easycart_stripe_connect_api_key PROFilters the Stripe Connect access token used for API requests.
$api_key (string) Sandbox or production access token, depending on the sandbox setting.wp_easycart_stripe_connect_fee_rateFilters the WP EasyCart application fee percentage taken on payments through the Stripe Connect, PayPal and Square apps (Square on live USD payments only), including Stripe subscriptions; WP EasyCart PRO returns 0 on an active license. At 0 the Payments screen drops its fee note and the setup wizard’s badge reads No EasyCart fees.
2 (int|float) Fee percentage, default 2.wp_easycart_stripe_connect_publishable_keyFilters the Stripe Connect publishable key output on cart and account pages.
$pkey (string) Publishable key for the current mode (sandbox or production).wp_easycart_stripe_connect_relay_urlFilters the base address of WP EasyCart Connect for Stripe Connect, used for the Connect Stripe links and for collecting a new connection.
self::BASE (string) https://connect.wpeasycart.com by default; a trailing slash is removed.wp_easycart_stripe_customer_test_modeFilters whether this storefront request pays in Stripe test mode for the signed-in customer while the store itself is in live mode; return false to keep the request live.
$test (bool) True by default when the customer’s Stripe test-mode customer switch is on, the request comes from the storefront (not the admin, WP-Cron or WP-CLI) and the gateway has test credentials.$GLOBALS['ec_user'] (object|null) The signed-in ec_user.$gateway (string) stripe or stripe_connect.wp_easycart_stripe_element_localeFilters the locale forced on Stripe payment elements; an empty value uses the current site language.
$locale (string) Locale code, default empty.wp_easycart_stripe_fallback_ca_bundle PROFilters the path of the bundled fallback CA certificate file used for Stripe requests.
$fallback (string) Path to the bundled cacert.pem.wp_easycart_stripe_local_methodsFilters the Stripe payment methods shoppers in a country use most, as Payments settings rows.
$rows (array) Row ids (such as stripe_use_ideal).$country (string) ISO country code or ”.wp_easycart_stripe_payment_methods PROFilters the payment method types offered when a Stripe payment intent is created.
$payment_methods (array) Stripe payment method types, default array( ‘card’ ).wp_easycart_stripe_payment_methods_type_enabledFilters whether the payment method types are reset to card only when Stripe rejects an intent request and it is retried.
$enabled (bool) Default true.wp_easycart_stripe_return_listed_requires_actionFilters whether the cart page shows the return screen for a Stripe payment that still requires action, such as a redirect.
$show (bool) Default true.wp_easycart_stripe_unavailable_textFilters the words shown in place of the card form when Stripe cannot start a payment.
$text (string) The message (plain text).wp_easycart_stripe_webhook_payment_intent_succeeded_send_emailFilters whether the receipt email and gift cards are sent when a Stripe payment_intent.succeeded webhook marks an order paid.
$send_email (bool) Default true.wp_easycart_subscription_payment_elementFilters whether the subscription checkout page takes the card in Stripe’s Payment Element, as the regular checkout does; return false to keep the older card field.
$ready (bool) True by default when the store’s gateway is Stripe or Stripe Connect and its class has the api() and accepts_payment_methods() methods.wp_easycart_third_party_retiredFilters the third-party gateways checkout no longer offers.
$retired (array) Gateway key => name.wp_easycart_third_party_return_post_bounceFilters whether a third party’s cookie-less post back to the order confirmation is opened again as a plain visit. Default true.
$bounce (bool) Whether to bounce the post (true).wpeasycart_payment_error_messageFilters the payment error text shown to the shopper when a gateway payment fails.
$message (string) Gateway error text.$gateway (string) Gateway name, such as square.Email and notifications
Grouped by what they are about
80 filterswp_easycart_abandoned_cart_endpoint_baseFilters the base URL used to build abandoned cart email links such as unsubscribe and click-tracking endpoints.
$url (string) Cart page URL, or the site home URL when no cart page is set.wp_easycart_abandoned_cart_first_send_atFilters the date and time the first abandoned cart reminder becomes due when a cart snapshot is saved.
$at (string) Database datetime of the first send; defaults to the abandoned_at time.$row (array) Snapshot being written (session_id, stage, last_activity, abandoned_at and more).wp_easycart_abandoned_cart_is_suppressedFilters whether an email address is blocked from receiving abandoned cart reminders because it unsubscribed.
$hit (bool) True when the address has an unsubscribed record.$email (string) Email address being checked.wp_easycart_abandoned_cart_reminder_senderFilters which system sends abandoned cart reminders, letting another plugin take over sending.
$sender (string) Sender slug; defaults to easycart.$cart (object) Abandoned cart row.wp_easycart_abandoned_cart_reminder_template PROFilters the path of the PHP template file used to render an abandoned cart reminder email.
$template_path (string) Path to the default reminder template.$cart (object) Abandoned cart row.$step_n (int) Number of the reminder step being sent.wp_easycart_abandoned_cart_restore_urlFilters the URL in abandoned cart emails that restores the shopper’s cart, optionally applying a coupon.
$url (string) Signed restore URL.$cart (object) Abandoned cart row.$coupon (string) Coupon code attached to the link, or empty.$track (bool) Whether click tracking is enabled for the link.$step (int) Reminder step number.wp_easycart_abandoned_cart_step_email PROFilters the finished HTML of an abandoned cart reminder email before it is sent.
$html (string) Rendered email HTML.$cart (object) Abandoned cart row.$n (int) Reminder step number.$view (array) Step text: subject, heading, intro and button.$coupon Coupon attached to this step, if any.wp_easycart_abandoned_current_sessionFilters the storefront session ID used to identify the shopper’s cart for abandoned cart tracking.
$sid (string) Current cart session ID, or empty string when none.wp_easycart_abandoned_email_selectorsFilters the CSS selectors of the checkout email fields watched to capture an email address for abandoned cart tracking.
$selectors (string) Comma-separated CSS selectors; defaults to the contact email and returning-customer login email fields.wp_easycart_checkout_fields_after_payment_notify PROFilters whether the store notification about checkout field answers is sent after payment; return false to skip it.
$notify (bool) Whether to send the email; true by default.$order_id (int) The order id.wp_easycart_ecv2_custom_email_template PROFilters the file path of the template used for a custom email sent from an order.
$template (string) Absolute path to the custom email template.$order (object) The order.wp_easycart_email_accent_colorFilters the accent color used in email designs.
$accent (string) Hex color; must be valid or #222222 is used.$args (array) Email design arguments.wp_easycart_email_address_linesFilters the address lines printed in an email for a billing or shipping address.
$lines (array) Address lines.$side (string) Which address is being printed.$source The order or address data the lines come from.wp_easycart_email_checksFilters the list of email delivery health checks shown in the email health screen.
$out (array) Each check with key, status, title, detail and optional fix_label and fix_url.wp_easycart_email_design_contextFilters the design context (store name, logo, colors and layout values) used to build an email.
$ctx (array) The email design context.$args (array) Email design arguments.wp_easycart_email_design_flatFilters whether an email is drawn flat, without the outer page frame.
$value (bool) Whether to use a flat layout; false by default.$args (array) Email design arguments.wp_easycart_email_dkim_selectorsFilters the DKIM selector names checked when testing the store’s email domain DNS records.
$value (array) List of selector names such as default, google, selector1, k1 and mailgun.wp_easycart_email_footer_htmlFilters the footer HTML at the bottom of an email.
$footer (string) Footer HTML.$args (array) Email design arguments.wp_easycart_email_help_linksFilters the help links shown in the email settings screen.
$value (array) guide, docs and video URLs.wp_easycart_email_is_store_emailFilters whether an outgoing email is treated as one of the store’s own emails.
$value (bool) Whether it is a store email; false unless the from address matches the store’s.$atts (array) The email attributes, including headers.wp_easycart_email_is_store_typeFilters whether an email log type goes to the store rather than to a customer, such as order copies and alerts. When a run of failed emails holds only store types, the Deliverability card says store emails are failing instead of warning that customers are not getting receipts.
$store (bool) True for types ending in _store and for low_stock, out_of_stock, review_alert, checkout_protection, checkout_fields and reports_summary.$type (string) The email log type.wp_easycart_email_log_per_pageFilters how many entries appear per page in the email log; the value is kept between 5 and 200.
$value (int) Entries per page.wp_easycart_email_log_retention_daysFilters how many days email log and sent queue rows are kept before they are deleted.
$value (int) Retention in days.wp_easycart_email_mailerFilters the mailer information detected for the site (the SMTP or mail plugin sending email).
$mailer (array) Detected mailer details.wp_easycart_email_mailer_pluginsFilters the list of known SMTP and mail plugins used to detect how the site sends email.
$list (array) Plugin slug => name, files, folders, settings, test, where, service and passive.wp_easycart_email_queue_attachmentsFilters the list of file paths attached to a queued email when the queue rebuilds its attachments for a retry.
$files (array) file paths to attach$recipe (array) the stored attachment recipe, with ‘specs’ and ‘files’ keys$q (object) the email queue row being retriedwp_easycart_email_queue_enabledFilters whether the email queue, which retries failed sends, is enabled; defaults to on unless the queue option is turned off.
$enabled (bool) true when the queue is enabled, from the ec_option_email_queue_enabled option (on when unset)wp_easycart_email_receipt_image_widthFilters the width in pixels of product images in receipt, invoice and abandoned cart emails.
$width (int) image width in pixels, default 70wp_easycart_email_sending_servicesFilters the list of email sending services (name, SPF include and DKIM setup instructions) used by the email deliverability help screens.
$services (array) service slug => array with ‘name’, ‘spf’ and ‘dkim’ keys; defaults include Google Workspace, Microsoft 365, SendGrid, Mailgun, Brevo, Amazon SES and otherswp_easycart_email_smtp_pluginsFilters the names of the SMTP or mail plugins detected as active on the site.
$found (array) display names of the detected mail plugins$active the active plugins list used to detect themwp_easycart_gift_receipt_email_content PROFilters the HTML body of the gift receipt email before it is sent.
$html (string) email HTMLorder id (int) the order ID$args (array) send argumentswp_easycart_gift_receipt_email_subject PROFilters the subject line of the gift receipt email.
$subject (string) email subjectorder id (int) the order ID$from_name (string) the billing first name of the orderwp_easycart_invoice_email_attachments PROFilters the file paths attached to the invoice email; extensions add generated files such as the invoice PDF.
$files (array) file paths, empty by defaultorder id (int) the order IDrecipient (string) ‘customer’$args (array) send argumentswp_easycart_invoice_email_content PROFilters the HTML body of the invoice email before it is sent.
$html (string) invoice email HTMLorder id (int) the order IDwp_easycart_invoice_email_subject PROFilters the subject line of the invoice email.
$subject (string) email subject, the invoice label plus the invoice number or order numberorder id (int) the order ID$record the invoice record, or false when none is issuedwp_easycart_message_email_attachments PROFilters the files attached to a custom message email sent from the admin order screen.
$attachments (array) file paths, empty by default$order_id (int) the order IDrecipient (string) ‘customer’$send_args (array) per-send choiceswp_easycart_order_email_attachmentsFilters the files attached to order emails such as receipts and invoices; returned paths are added to the built-in attachments.
$attachments (array) file paths, empty by defaultorder id (int) the order ID$recipient (string) ‘customer’ or ‘admin’$context (array) email kind (receipt or invoice), the order display object and per-send argswp_easycart_order_email_log_metaFilters extra key and text details saved in the order log entry when an order email is sent from the admin.
$meta (array) key => text, empty by defaultorder id (int) the order IDlog key (string) order-receipt-email, order-shipping-email or order-packing-slip-email$args (array) per-send choiceswp_easycart_order_email_previewFilters the preview HTML shown for an order email on the admin order screen, letting extensions supply previews for their own email kinds.
$html (string) preview HTML so far, empty for an email kind WP EasyCart does not know$email (string) the email kind$order_id (int) the order ID$args (array) per-send choiceswp_easycart_order_send_argsFilters the extra arguments used when an order email is sent or previewed from the admin order screen.
$args (array) Send arguments, empty by default.$order_id (int) The order id.$email (string) Email type: receipt, shipped or packing_slip.wp_easycart_packing_slip_email_attachments PROFilters the files attached to a packing slip email.
$files (array) Attachment file paths, empty by default.$order_id (int) The order id.$recipient (string) Recipient, always ‘customer’.$args (array) Per-send choices.wp_easycart_packing_slip_email_content PROFilters the HTML body of the packing slip email before it is sent.
$html (string) The email HTML.$order_id (int) The order id.$args (array) Per-send choices.wp_easycart_packing_slip_email_subject PROFilters the subject line of the packing slip email.
$subject (string) The subject, including the order number.$order_id (int) The order id.wp_easycart_pdf_receipt_emails PROFilters which emails may carry the PDF receipt or invoice attachment.
$emails (array) Email types, default receipt and invoice.wp_easycart_setup_email_listFilters the emails listed on the Email settings page, with when each is sent and its controls.
$out (array) Key => label, when, types, control, plan, url and copies.wp_easycart_setup_email_stateFilters how the Email settings page rates the store’s email sending, from the last seven days of the email log.
$state (string) new, failing or working.$h (array|null) The email health; null without the email log.wp_easycart_setup_email_stepsFilters the set-up steps on the Email settings page.
$steps (array) Each: key, state, title, text and html.wp_easycart_shipping_email_accent_colorFilters the accent color used in the shipping notification email.
$accent (string) Accent color, defaults to the store’s main details color.wp_easycart_shipping_email_address_linesFilters the address lines printed in the shipping email for the billing or shipping address.
$lines (array) Formatted address lines.$type (string) Address type, billing or shipping.$order (object) The order row.wp_easycart_shipping_email_attachmentsFilters the list of file attachments added to the customer shipping email.
$attachments (array) Attachments, starts empty.$order_id (int) Order id.$recipient Email recipient.$args Options passed when sending the shipping email.wp_easycart_shipping_email_contentFilters the rendered HTML body of the customer shipping email before it is sent.
$message (string) Email HTML.$order_id (int) Order id.$args Options passed when sending the shipping email.wp_easycart_shipping_email_subjectFilters the subject line of the customer shipping email.
$subject (string) Subject, the shipping email title followed by the order id.$order_id (int) Order id.wp_easycart_shipping_email_track_button_textFilters the text of the track-your-package button in the shipping email.
$text (string) Button text, default Track your package.$order (object) The order row.wp_easycart_shipping_email_tracking_urlFilters the carrier tracking link used by the shipping email button.
$url (string) Tracking URL built from the carrier and tracking number.$carrier (string) Carrier name.$tracking (string) Tracking number.$order (object) The order row.wp_easycart_stock_alert_recipients PROFilters the admin email addresses that receive low stock alerts and the low stock digest.
$recipients (string) Comma-separated addresses, defaults to the store notification (BCC) addresses.wp_easycart_stock_alert_skip_sourcesFilters the stock change sources that do not trigger a low stock alert email.
$skip_sources (array) Source slugs to skip, default import and square.wp_easycart_subscription_reminder_dataFilters the data a subscription reminder email is built from: the renewal reminder, the free trial ending reminder and the price change notice.
$reminder (array) Keys kind (renewal, trial or price), subscription_id, title, first_name, date, at, amount, amount_text, period_text, price_text, old_price_text and link (the subscription in My Account).$row (object) The subscription row.wp_easycart_subscription_reminder_liveLets an extension supply the live Stripe subscription a due reminder is checked against instead of asking Stripe; its status, dates, cancel settings and items decide whether the reminder goes, its date and its amount.
$live (object|null) null by default (ask Stripe); return an object shaped like Stripe’s subscription.$row (object) The ec_subscription row.$kind (string) renewal or trial.wp_easycart_subscription_reminder_settingsFilters the subscription reminder settings before the reminder job uses them to decide whether it runs and which reminders are due; the days are then kept between 1 and 90.
$settings (array) Keys renewal and trial (on or off), renewal_days and trial_days, from the Subscription reminders email settings.wp_easycart_subscription_renewal_reminder_appliesFilters whether an Active subscription inside the reminder window gets a renewal reminder email; by default only subscriptions billed yearly or less often do.
$applies (bool) True when it bills once a year or less often.$row (object) The ec_subscription row.wp_easycart_withdrawal_recipientsFilters who gets the store’s email notice when an EU withdrawal statement arrives.
$list (string[]) Email addresses: the Send the store’s copy to setting, else the order notification addresses, else the site’s admin email.wpeasycart_email_method PROFilters the email send method used for store emails, where 1 sends through wp_mail.
$email_send_method (string) Value of the ec_option_use_wp_mail setting; ‘1’ uses wp_mail.wpeasycart_email_receipt_enable_view_order_buttonFilters whether the order receipt email shows a View Order button instead of a plain link.
$enable (bool) False by default; return true to show the button.wpeasycart_inquiry_email_admin_contentFilters the HTML content of the product inquiry email sent to the store.
$admin_message (string) Store copy of the inquiry email body.$filter_options (array) Inquiry details passed to the filters.wpeasycart_inquiry_email_admin_subjectFilters the subject of the product inquiry email sent to the store.
$admin_subject (string) Subject line.wpeasycart_inquiry_email_contentFilters the HTML content of the product inquiry email sent to the shopper.
$message (string) Shopper copy of the inquiry email body.$filter_options (array) Inquiry details passed to the filters.wpeasycart_inquiry_email_recipientFilters the address or addresses that receive a product inquiry.
$store_email (string) Recipient addresses.$product (object) Product row the inquiry is about.wpeasycart_inquiry_email_subjectFilters the subject of the product inquiry email sent to the shopper.
$subject (string) Subject line.wpeasycart_order_email_admin_contentFilters the HTML content of the order receipt email sent to the store.
$admin_message (string) Store copy of the receipt email body.$order_id (int) Order id.wpeasycart_order_email_admin_emailFilters the address or addresses that receive the store copy of an order receipt.
$admin_email (string) Value of the ec_option_bcc_email_addresses setting.$order_id (int) Order id.wpeasycart_order_email_admin_titleFilters the subject of the order receipt email sent to the store.
$admin_title (string) Subject line.$order_id (int) Order id.wpeasycart_order_email_attachmentsFilters the list of file attachments added to an order receipt or invoice email.
$attachments (array) Attachment file paths; empty by default.$order_id (int) Order id.wpeasycart_order_email_customer_contentFilters the HTML content of the order receipt email sent to the customer.
$message (string) Customer receipt email body.$order_id (int) Order id.wpeasycart_order_email_customer_titleFilters the subject of the order receipt email sent to the customer.
$customer_title (string) Subject line.$order_id (int) Order id.wpeasycart_refund_email_admin_contentFilters the HTML content of the refund email sent to the store.
$admin_message (string) Store copy of the refund email body.$order_id (int) Order id.wpeasycart_refund_email_admin_emailFilters the address or addresses that receive the store copy of a refund email.
$admin_email (string) Value of the ec_option_bcc_email_addresses setting.$order_id (int) Order id.wpeasycart_refund_email_admin_titleFilters the subject of the refund email sent to the store.
$admin_title (string) Subject line.$order_id (int) Order id.wpeasycart_refund_email_attachmentsFilters the list of file attachments added to a refund email.
$attachments (array) Attachment file paths; empty by default.$order_id (int) Order id.wpeasycart_refund_email_customer_contentFilters the HTML content of the refund email sent to the customer.
$message (string) Customer refund email body.$order_id (int) Order id.wpeasycart_refund_email_customer_titleFilters the subject of the refund email sent to the customer.
$customer_title (string) Subject line.$order_id (int) Order id.Offers and coupons
Grouped by what they are about
35 filterswp_easycart_admin_coupon_details_stepfour_fields_list PROFilters the list of field definitions shown in step four of the admin promotion details form.
$fields (array) Field definitions, each an array with keys such as panel, name, type and label.wp_easycart_admin_coupon_details_stepone_fields_list PROFilters the list of field definitions shown in step one of the admin coupon or promotion details form.
$fields (array) Field definitions, each an array with keys such as panel, name, type and label.wp_easycart_admin_coupon_details_stepthree_fields_list PROFilters the list of field definitions shown in step three of the admin coupon details form.
$fields (array) Field definitions, each an array with keys such as panel, name, type and label.wp_easycart_admin_coupon_details_steptwo_fields_list PROFilters the list of field definitions shown in step two of the admin coupon or promotion details form.
$fields (array) Field definitions, each an array with keys such as panel, name, type and label.wp_easycart_admin_offer_list_filters PROFilters the filter controls shown above the admin offers list.
$filters (array) Filter definitions, each with data, label, type and where clause.wp_easycart_admin_product_offer_test PROFilters the result of testing a typed offer code against a product in the product editor’s Offers section.
$result (array) the test result built by the offer code test$product (object) the product$raw_code (string) the code as typedwp_easycart_admin_product_offers_group_cap PROFilters the maximum number of offers listed per group in the product editor’s Offers section (default 100).
$cap (int) maximum number of offers per group, default 100$product_id (int) the product idwp_easycart_cart_link_destinationFilters the URL a shopper is redirected to after a cart link is applied (the cart page, or checkout for links set to go to checkout).
$destination (string) The cart or checkout page URL.$link (object) The cart link record.$added Result of adding the link’s items to the cart.wp_easycart_cart_link_urlFilters the public URL of a cart link, built from the store page and the link’s token.
$url (string) The store page URL with the ec_cart_apply token added.$token (string) The cart link token.wp_easycart_discount_display_labelFilters the words an applied offer is printed with on a customer-facing document.
$text (string) The label, with ” (CODE)” when the code is shown.$offer (array) The applied offer entry.$show (bool) Whether the code is shown.$context (string) Where it prints.wp_easycart_ecv2_cart_link_getFilters the cart link record returned to the admin editor when a cart link is loaded.
$link (object) The cart link, including its public url.wp_easycart_ecv2_cart_link_is_proFilters whether the PRO cart links features are active in the admin cart links screen.
$pro (bool) True when PRO has hooked the cart link max items filter.wp_easycart_ecv2_cart_link_max_itemsFilters the maximum number of products a saved cart link may hold; the free plugin allows 1 and PRO raises it.
$value (int) Maximum items per cart link; 1 by default.wp_easycart_ecv2_cart_link_product_dataFilters the product data returned to the cart link editor when a product is chosen, letting PRO add modifiers.
$payload (array) Product data including sku, price, basic options and modifiers.$product (object) The product row.wp_easycart_ecv2_cart_link_save_dataFilters the data saved for a cart link, such as promo codes, expiry and max uses.
$data (array) The cart link fields to save.$_POST (array) The submitted form data.wp_easycart_ecv2_cart_link_save_itemsFilters the items saved for a cart link, letting PRO add modifier values.
$items (array) The cart link items.$_POST (array) The submitted form data.wp_easycart_groupon_uses_per_code GrouponFilters how many times each imported deal code can be used.
$per_code (int) uses per code, default 1$deal the deal the codes are imported intowp_easycart_offer_badge_default_text PROFilters the words an offer’s badge shows when the store left the badge text empty.
$text (string) The badge text (plain text).$offer (ec_offer) The offer.wp_easycart_offer_callout_iconFilters the icon printed before an offer’s callout on a product; return markup, or an empty string for no icon.
'<span class="dashicons dashicons-megaphone ..."></span>' (string) The icon markup, a megaphone by default.$callout (array) The callout, with its text and countdown.$callout_product_id (int) The product id.wp_easycart_offer_compare_at_sales PROFilters the products the cart’s offer lines count as on sale because of their compare-at price. Return an empty array to count only classic promotions.
$sales (bool[]) product_id => true.$cart_items (array) The cart items.wp_easycart_offer_completed_order_join PROFilters the SQL join that limits offer purchase history checks to completed orders; by default only orders with an approved status count.
$join (string) SQL INNER JOIN clause on ec_orderstatus where is_approved = 1wp_easycart_offer_context PROFilters the context array (cart session, customer, roles and coupon code) the offer engine evaluates against.
$context (array) context with session_id, user_id, email, roles, logged_in and legacy_coupon_codewp_easycart_offer_custom_action PROLets an extension build the application for a custom offer action type; return an array to apply it, or false to skip.
$application (array|false) offer application, false by default$offer the offer being applied$lines the cart lines$buy_indexes indexes of the lines that qualify$context the offer contextwp_easycart_offer_custom_condition PROLets an extension evaluate a custom offer condition type; return true when the condition passes.
$passes (bool) result, false by default$condition the condition being evaluated$offer the offer$lines the cart lines$eligible_indexes indexes of the eligible lines$context the offer contextwp_easycart_offer_eligible_lines PROFilters the cart lines an offer is eligible to apply to.
$eligible (array) indexes of the eligible cart lines$offer the offer$lines the cart lines$side which side of the offer is being checkedwp_easycart_offer_evaluation_result PROFilters the final result of evaluating all offers against a cart.
$result (object) the evaluation result, including the lines$cart_items the cart items evaluated$context the offer contextwp_easycart_offer_line_savingsFilters the savings figures (code, automatic and shown) calculated for an order line from its offer discounts.
$savings (array) code, automatic and shown amounts for the whole line, in base currency$offer_discounts (array|string) the line’s offer discountswp_easycart_offer_product_scope_match PROFilters the result of checking whether an offer applies to a product.
$result (array) the scope match result, including applies, coverage and blocker$offer the offer$product the product checkedwp_easycart_offer_reversal_statusesFilters the order status IDs that reverse offer usage when an order moves to that status.
$statuses (array) order status IDs, default 16 and 19wp_easycart_offers_available PROFilters whether the offers engine is available, optionally for a minimum version.
$available (bool) true by default$min_version (string) minimum offers version required, or emptywp_easycart_offers_licensed PROFilters whether the offers feature is licensed.
$licensed (bool) whether the WP EasyCart license is validwp_easycart_offers_listing_priceFilters the price a store product card shows, asked only where a card can show an offer’s price.
$answer (array) offer, price and strike.$product (ec_product) The product.wp_easycart_product_offers_candidate_limit PROFilters how many candidate offers the product editor’s offers panel loads for a product.
$limit (int) Candidate limit, default 100.$product_id (int) The product id.wp_easycart_product_offers_candidate_limit_max PROFilters the maximum number of candidate offers the product editor’s offers panel can load when checking more offers.
$limit (int) Maximum limit, default 500.$product_id (int) The product id.wp_easycart_show_discount_codesFilters whether a customer-facing document prints discount codes. Default the store’s setting.
$show (bool) The setting.$context (string) Where it prints.Reviews
Grouped by what they are about
7 filterswp_easycart_review_email_textFilters a text string used in the review request and review reply emails.
$fallback (string) The default text.$key (string) Identifier of the text, such as greeting.wp_easycart_review_reply_labelFilters the label above the store’s reply to a review.
$label (string) sprintf format with one %s for the responder, default ‘Response from %s’.wp_easycart_review_reply_subjectFilters the subject of the email sent to a customer when the store replies to their review.
$subject (string) The subject line.$vars (array) Template variables for the email, including store_name.wp_easycart_review_request_subjectFilters the subject of the review request and review reminder emails.
$subject (string) The subject line, with {store} and {first_name} already replaced.$vars (array) Template variables for the email.wp_easycart_review_verified_labelFilters the Verified buyer badge text shown on a review.
$label (string) Badge text, default ‘Verified buyer’.wp_easycart_reviews_pagnation_perpageFilters how many reviews are shown per page in the product reviews list.
$perpage (int) Reviews per page, default 6.wp_easycart_reviews_pro_enabledFilters whether the PRO review features are treated as enabled.
$pro (bool) True when PRO is active and licensed.Reports and analytics
Grouped by what they are about
43 filterswp_easycart_export_report_listFilters the download links produced when a report export job finishes.
$reports (object) report keys (report1, report2, reporttax) => file URL$start_date report start date from the job$end_date report end date from the jobproduct id (int) product filter from the jobcountry shipping country filter from the jobbilling country billing country filter from the jobwp_easycart_google_ads_conversionFilters the Google Ads conversion a purchase is sent to. Return an empty string to send none.
$send_to (string) AW-ID/label.wp_easycart_meta_advanced_matchingFilters the customer matching data (hashed email and external ID) sent with Meta Pixel events.
$matching (array) advanced matching values: em and external_id$user_id (int) account ID, 0 for a guest$email (string) the email, when knownwp_easycart_meta_capi_calling_code PROFilters the phone calling code for a country used in Meta Conversions API customer data.
$code (string) calling code for the country$country (string) lowercased country codewp_easycart_meta_capi_enabled PROFilters whether the Meta Conversions API (server-side events) is enabled.
$enabled (bool) true when the setting, license, pixel ID and access token are all presentwp_easycart_meta_capi_event PROFilters a Meta Conversions API event before it is queued; return a non-array to skip it.
$event (array) the finalized event payload$event_name (string) the event name$context the event contextwp_easycart_meta_capi_purchase_event PROFilters the Meta Conversions API Purchase event built for an order.
$event (array) the finalized purchase event$order (object) the order$context the event contextwp_easycart_meta_capi_send_renewals PROFilters whether subscription renewal orders are sent to Meta as Purchase events.
$send (bool) true by defaultorder id (int) the order IDwp_easycart_meta_capi_token PROFilters the access token used for the Meta Conversions API.
$token (string) access token, from the connected extension or the saved settingwp_easycart_meta_currencyFilters the currency code sent with Meta events.
$currency (string) ISO 4217 code of the store currencywp_easycart_meta_external_idFilters the hashed external ID sent to Meta for a customer.
$hashed (string) SHA-256 hex hash, or an empty string$user_id (int) account ID$email (string) lowercased emailwp_easycart_meta_is_storefront_requestFilters whether the current request is a storefront request that may announce Meta events.
$storefront (bool) the answer so farwp_easycart_meta_parse_content_idFilters the result of splitting a Meta content ID into product and variant parts.
$parsed (array|false) parsed content ID, or false when it cannot be parsed$content_id (string) the content IDwp_easycart_meta_pixel_idFilters the Meta Pixel ID the storefront uses; non-digits are removed from the result.
$pixel_id (string) pixel ID digits, or an empty stringwp_easycart_order_sourceFilters the traffic source data saved on an order before it is written to the database.
$row (array) source_type, source_name, last_source_type, last_source_name and source_data.$order_id (int) The order id.$kind (string) How the order was created: checkout, staff or renewal.$data (array|null) The visitor’s recorded visits, checkout orders only.wp_easycart_order_source_listsFilters the referrer host lists (including the ignore list) used to classify where an order came from.
$lists (array) Host lists used by order source tracking, including the ignore list.wp_easycart_order_sources_consent_categoryFilters the cookie consent category order source tracking waits for before capturing visits.
$category (string) marketing or statistics.wp_easycart_order_sources_proFilters whether order sources are shown in full, which WP EasyCart PRO turns on when licensed.
$pro (bool) True when PRO shows sources in full, false by default.wp_easycart_order_sources_pro_licensed PROFilters whether PRO’s order sources feature treats the store as licensed.
$licensed (bool) True when a valid license is active.wp_easycart_order_sources_scriptFilters whether the order source capture script is loaded on storefront pages.
$load (bool) True to enqueue the script, default true.wp_easycart_pro_analytics_bot_signatures PROFilters the list of user agent fragments PRO analytics treats as bots and ignores.
$signatures (array) Lowercase user agent fragments, such as googlebot and bingbot.wp_easycart_pro_analytics_capture_order PROFilters whether PRO analytics captures the shopper’s context at order time for server-side ad and analytics events.
$wanted (bool) True when Facebook CAPI or direct GA4 tracking is turned on.wp_easycart_pro_analytics_client_ip PROFilters the shopper’s IP address as detected by PRO analytics; a non-public address is discarded.
$ip (string) The detected client IP.$remote The connecting remote address the detection started from.wp_easycart_pro_analytics_is_shopper_request PROFilters whether the current request is treated as coming from a shopper for PRO analytics.
$shopper (bool) True when the request looks like a shopper’s.wp_easycart_pro_analytics_private_query_args PROFilters the query string arguments removed from a source URL before PRO analytics stores it.
$secret (array) Query argument names to strip, such as key, token and email.wp_easycart_pro_analytics_unknown_consent PROFilters whether PRO analytics sends an order’s event when the shopper’s consent is unknown.
$send (bool) True unless consent management is on.$order_id (int) The order id.$category (string) Consent category: marketing or statistics.wp_easycart_product_tracking_payloadFilters what the Elementor Product Tracking widget sends with a product page’s view events.
$data (array) The payload.$product (ec_product) The product.$settings (array) The widget’s settings.wp_easycart_reports_insightsFilters the insight messages shown on the Reports overview.
$out (array) Insights, each with a tone and text.$cur (array) Numbers for the selected range.$prev (array|null) Numbers for the compare range.$args (array) Report arguments.wp_easycart_reports_order_whereFilters extra SQL conditions appended to the order queries behind reports.
$sql (string) Extra SQL, empty by default.$args (array) Report arguments.$alias (string) The ec_order table alias.wp_easycart_reports_pro_licensed PROFilters whether the Pro Reports are open, meaning the store has a valid license.
$licensed (bool) True for a valid license.wp_easycart_reports_pro_tabsFilters the ids of the Pro Reports tabs that WP EasyCart PRO serves.
$tabs (string[]) Tab ids, empty by default.wp_easycart_reports_research_exportFilters the research export settings on the Reports page; returns null while locked.
$research (array|null) Array with the AJAX action and nonce, or null.wp_easycart_reports_saved_viewsFilters the saved report views for the current person; returns null while locked.
$views (array|null) Saved views with id, name and state, or null.wp_easycart_reports_summary_frequenciesFilters the frequencies available for the report summary email.
$frequencies (array) Frequency key => label, weekly by default.wp_easycart_reports_summary_section_choicesFilters the optional sections a store can choose to include in the report summary email.
$choices (array) Section key => label, empty by default.wp_easycart_reports_summary_sectionsFilters the extra sections added to the report summary email when it is sent.
$sections (array) Sections to add, each with a title, empty by default.$args (array) The reporting period, including start2 and end2.$frequency (string) daily, weekly or monthly.$chosen (array) Section keys the store picked.wp_easycart_reports_tab_dataFilters the data for a Reports tab; return an array to supply the tab’s data.
$data (array|null) Tab data, null by default.$tab (string) The tab id.$args (array) Report arguments.wp_easycart_reports_tabsFilters the tabs on the Reports page.
$tabs (array) Tab id => details such as label, plan, feature and description.wp_easycart_reports_totalsFilters the headline order totals calculated for a report date range.
$out (array) Total figures.$start (string) Range start, Y-m-d.$end (string) Range end, Y-m-d.$args (array) Report arguments.wp_easycart_store_activity_countableFilters whether a storefront request counts toward store activity (product views, searches, visits, add-to-carts and checkout steps); return false to leave it out. Not asked while store activity is off or for a signed-in administrator.
$browser (bool) True when the user agent is a browser and not a crawler.$agent (string) The visitor’s user agent.wp_easycart_subscription_mrr_statusesFilters the subscription statuses that count toward monthly recurring revenue in WP EasyCart PRO’s Reports, Subscriptions list and Plans list.
$statuses (string[]) Active, canceling, Failed and past_due by default, compared without case; an empty list falls back to Active.wpeasycart_allow_pixel_codeFilters whether the Facebook pixel base code is printed in the page head on pages that contain a WP EasyCart shortcode.
$allow (bool) Whether the pixel code may be printed; defaults to true.wpeasycart_marketing_consentFilters whether the shopper has given marketing consent for a WP Consent API category.
$has (bool) The answer so far.$category (string) WP Consent API category.Admin screens and settings
Grouped by what they are about
120 filterswp_easycart_admin_ai_assistantsFilters the AI assistants listed on the AI assistants settings page. Default Claude, ChatGPT and Gemini.
$assistants (array) Key => label, keys and help (the maker’s set-up guide).wp_easycart_admin_bulk_category_optionsFilters the bulk actions available in the admin categories list.
$bulk_actions (array) List of actions, each an array with name and label.wp_easycart_admin_bulk_offer_options PROFilters the bulk actions available in the admin offers list.
$bulk_actions (array) List of actions, each an array with name and label.wp_easycart_admin_bulk_option_optionsFilters the bulk actions available in the admin product options list.
$bulk_actions (array) List of actions, each an array with name and label.wp_easycart_admin_bulk_order_optionsFilters the bulk actions available in the admin orders list.
$bulk_actions (array) List of actions, each an array with name, label and optionally an alt array for a sub-selector such as order status.wp_easycart_admin_bulk_product_optionsFilters the bulk actions available in the admin products list.
$bulk_actions (array) List of actions, each an array with name and label.wp_easycart_admin_bulk_user_optionsFilters the bulk actions available in the admin customer accounts list.
$bulk_actions (array) List of actions, each an array with name and label.wp_easycart_admin_capability PROFilters the WordPress capability a user needs to use WP EasyCart admin actions, such as offer management.
$capability (string) Capability name; defaults to manage_options.wp_easycart_admin_category_list_filtersFilters the filter controls shown above the admin categories list.
$filters (array) List of filter definitions, each with data, label, type and where clause.wp_easycart_admin_claude_pluginFilters the Claude plugin the AI assistants settings page tells you to install.
array() (array) marketplace, plugin and url; empty values keep the defaults.wp_easycart_admin_compat_lockedFilters whether the WP EasyCart admin is locked because a required plugin version is missing or too old.
$locked (bool) True when at least one requirement is unmet.$conflicts (array) The unmet requirements.wp_easycart_admin_compat_requirementsFilters the plugin versions this release needs before its admin can load.
$requirements (array) Required plugin versions that the compatibility check tests.wp_easycart_admin_currency_symbolFilters the currency symbol shown beside currency fields in the admin product editor.
$symbol (string) Currency symbol for the store’s currency.wp_easycart_admin_date_formatFilters the PHP date format an admin date style prints with.
$format (string) The date format.$style (string) The date style.$order (string) The day, month and year order: dmy, mdy or ymd.wp_easycart_admin_date_orderFilters the order admin dates follow, worked out from a date format. Any value other than dmy, mdy or ymd falls back to mdy.
$order (string) dmy, mdy or ymd.$format (string) The date format read.wp_easycart_admin_datetime_format_oldestFilters how a date and time is displayed in admin list tables when it falls in a previous year.
$formatted (string) Formatted date using the site’s date and time formats.$date_timestamp (int) Unix timestamp of the date being displayed.wp_easycart_admin_datetime_format_same_weekFilters how a date and time is displayed in admin list tables when it falls earlier in the past week (not today or yesterday).
$formatted (string) Formatted weekday name and time.$date_timestamp (int) Unix timestamp of the date being displayed.wp_easycart_admin_datetime_format_same_yearFilters how a date and time is displayed in admin list tables when it falls earlier in the current year but more than a week ago.
$formatted (string) Formatted short month, day and time.$date_timestamp (int) Unix timestamp of the date being displayed.wp_easycart_admin_datetime_format_todayFilters how a date and time is displayed in admin list tables when it falls today.
$formatted (string) Text made of the word Today followed by the time.$date_timestamp (int) Unix timestamp of the date being displayed.wp_easycart_admin_datetime_format_yesterdayFilters how a date and time is displayed in admin list tables when it falls yesterday.
$formatted (string) Text made of the word Yesterday followed by the time.$date_timestamp (int) Unix timestamp of the date being displayed.wp_easycart_admin_deferred_checksFilters the admin checks that run after the page shows.
$checks (array) Key => array( caps, ready, render ).wp_easycart_admin_ecv2_advanced_pricing_enabledFilters whether advanced pricing (B2B tiers and role pricing) is enabled, controlling badges and menus in the admin product price cell.
$enabled (bool) False by default; Pro turns it on.wp_easycart_admin_ecv2_option_set_search_typesFilters which option set types can be found when searching for an option set in the admin product editor.
$types (array) Option set type slugs; defaults to basic-combo and basic-swatch.wp_easycart_admin_ecv2_price_cell_badgesFilters the badges shown in a product’s price cell in the admin products list.
$badges (array) Badge definitions (each with keys such as class and action).$result (object) Product row being displayed.wp_easycart_admin_ecv2_save_price_responseFilters the JSON response sent back after prices are saved from the admin products list, letting Pro add data to refresh the interface.
$response (array) Response data for the price counts and related values.$product_id (int) ID of the product whose prices were saved.wp_easycart_admin_edition_stateFilters the license state the admin wording is based on, such as free, trial, pro or premium.
$state (array) Array with tier (free, trial, pro or premium), lapsed (bool) and end (timestamp).wp_easycart_admin_error_messagesFilters the error messages shown as notices at the top of WP EasyCart admin screens.
$messages (array) Messages to display as error notices; empty by default.wp_easycart_admin_extensions_navFilters the entries in the left navigation under Extensions in the admin.
$items (array) Rows with label, url and current (bool) keys.wp_easycart_admin_fee_details_basic_fields_list PROFilters the list of basic field definitions shown on the admin fee details form.
$fields (array) Field definitions, each an array with keys such as name, type, label and value.wp_easycart_admin_fold_wp_menuFilters whether WordPress’s admin menu is folded to icons on a WP EasyCart screen. Default true unless the person opened the menu on an EasyCart screen (their wpecmfold user setting is o).
$folded (bool) Whether the menu is folded.wp_easycart_admin_frame_foldLets an admin screen fold the EasyCart menu to icons to make room for its content, as the product editor does. Return false, or an array with folded (how the menu starts), action (the AJAX action the fold button posts to) and nonce.
false (array|false) False: the menu does not fold on this screen.wp_easycart_admin_inventory_columnsFilters the columns shown in the admin inventory table.
$columns (array) Column definitions, each with name, label and optional responsive hide keys.$pro_enabled (bool) Whether Pro is active.wp_easycart_admin_inventory_health_statsFilters the health stat tiles shown above the admin inventory table.
$stats (array) Stat tiles, each with label, value, filter_value, color and group.$pro_enabled (bool) Whether Pro is active.$threshold (int) Low stock threshold.wp_easycart_admin_inventory_health_whereFilters the SQL WHERE fragment for an inventory health filter, letting extensions handle filter keys the core does not know.
$where (string) WHERE fragment for the selected filter.$filter_key (string) Health filter key being applied.$context (array) Array with threshold (low stock threshold) and pro_enabled (bool).wp_easycart_admin_inventory_qty_reasonFilters the reason key recorded when an admin changes an inventory quantity.
$reason (string) Default reason key: manual-set, manual-add, manual-remove or tracking-started.$requested (string) Reason key posted by the quantity popover; may be empty.$mode (string) Change mode: set, add or remove.wp_easycart_admin_inventory_qty_reason_errorFilters whether an inventory quantity change is refused for lacking a valid reason; return a non-empty message to block the save.
$message (string) Refusal message; empty allows the change.$requested (string) Reason key posted by the popover.$mode (string) Change mode: set, add or remove.$context (array) Array with tracked, has_mode, product_id and oiq_id.wp_easycart_admin_inventory_selectFilters extra SELECT SQL that Pro adds to each branch of the admin inventory query.
$extra (array) Array with basic and variant keys holding SQL fragments, each starting with a comma.$pro_enabled (bool) Whether Pro is active.wp_easycart_admin_js_textFilters the translated words a group of admin scripts receives, before they are printed as window.wpEasyCartText.
$data (array) The strings (s) and plural forms (p).$group (string) The script group.wp_easycart_admin_lock_iconFilters the lock icon marker shown on Pro-only features in the admin; an empty string means Pro features are unlocked.
'locked' (string) In the free edition ‘locked’ or the lock icon markup; empty when PRO features are available.wp_easycart_admin_money_formatFilters the store’s amount format as admin scripts receive it.
$format (array) symbol, before, left, negBefore, decimals, dec, group, thou, code and space.wp_easycart_admin_offers_trialFilters whether the Free plan’s locked PRO features lead with the free trial.
$offer (bool) Whether the trial is offered.wp_easycart_admin_option_list_filtersFilters the filter controls shown above the admin option sets list.
$filters (array) Filter definitions, each with data, label, type and where clause.wp_easycart_admin_order_list_columnsFilters the columns loaded for the admin orders list table.
$columns (array) Column definitions, each with select, name, format and label keys.wp_easycart_admin_order_list_filtersFilters the filter controls shown above the admin orders list.
$filters (array) Filter definitions, each with data, label, type and where clause.wp_easycart_admin_order_list_search_columnsFilters the database columns searched by the admin orders list search box.
$columns (array) Column names such as ec_order.order_id and ec_order.user_email, searched with LIKE.wp_easycart_admin_order_new_jsFilters the JavaScript run when the Add New button is clicked in the admin orders list.
$new_order_js (string) JavaScript for the button’s click handler; may show a Pro upgrade prompt.wp_easycart_admin_payment_flashFilters the message the Payments page shows when a gateway’s connection link returns to it. Return an empty text to show nothing.
$flash (array) text (” for none), tone (success, warning, error or info), actions and detail.wp_easycart_admin_premium_offerFilters the Premium upgrade offer (button and message) shown in the admin, based on the license.
$offer (array) Offer with mode, url, cta, title and desc keys.$tier (string) License tier: free, trial, pro or premium.$lapsed (bool) True when the license is past its end date.wp_easycart_admin_registration_quiet_noticesFilters which wp_easycart_admin_messages callbacks are taken off the Registration & activation page, which explains the license itself; add a class => method pair to keep a license notice off that page.
array(...) (array) Class name => method name; by default WP EasyCart Premium’s license_notice, Groupon’s notice and WP EasyCart PRO’s license-server outage note (wp_easycart_dev_sites print_shell_notes).wp_easycart_admin_renew_urlFilters where a paid license is renewed. Default the WP EasyCart account page, https://www.wpeasycart.com/my-account/.
$url (string) The renewal URL.$autopay (bool) Whether the license renews itself (AutoPay).wp_easycart_admin_search_actionsFilters the quick actions in the admin search (index items of type action).
$out (array) The action items.wp_easycart_admin_search_indexFilters the admin search’s index for the current user before it is cached for 12 hours.
$items (array) The index items.wp_easycart_admin_search_providersFilters the record types the admin search looks through. Each provider has a label, a capability (or callable), a callback returning rows, an optional more callback and an order; providers are sorted by order (default 100).
$providers (array) Key => provider.wp_easycart_admin_search_version_partsFilters the parts the admin search index’s version is built from. Add a part for anything an extension puts in the index that can change, so the cached index is rebuilt when it does.
$parts (array) Strings hashed into the version.wp_easycart_admin_success_messagesFilters the success notices shown at the top of the admin screens. Each message is a string or an array with text, tone, detail and actions.
$messages (array) success messages, empty by defaultwp_easycart_admin_trial_upgrade_urlFilters where a PRO trial becomes a paid plan. Default the plans and pricing page, https://www.wpeasycart.com/wordpress-shopping-cart-pricing/.
$url (string) The upgrade URL.$plan (string) pro or premium.$key (string) The trial’s license key (” when none is saved).wp_easycart_admin_undo_capabilitiesFilters the capability required to undo each kind of admin deletion.
$caps (array) kind => capability, with order, product, account and subscriber by defaultwp_easycart_admin_undo_restore_{entry}Filters the result of restoring an undone deletion. A callback for the deleted item’s kind restores it and returns a non-null result. {entry} is the kind of item deleted, such as order or product.
$result (mixed) null by default; callbacks return the restore result or a WP_Error$snapshot (array) the saved snapshot of the deleted itemwp_easycart_admin_undo_ttlFilters how long, in seconds, a deletion can be undone after it happens (default 15 minutes).
$ttl (int) time in seconds, default 15 * MINUTE_IN_SECONDSwp_easycart_admin_upgrade_fileFilters the path of the template file included for the admin upgrade screen.
$file (string) full path to upgrade-screen.phpwp_easycart_admin_upgrade_urlFilters the upgrade URL used by locked admin features that link to the pricing page, such as abandoned carts and smart categories.
$url (string) upgrade URL on wpeasycart.com, including an upsell query argumentwp_easycart_admin_v2_gate_descriptionFilters the description text shown on a locked (Pro or Premium) field in the product editor.
$description (string) default text, ‘Unlock this feature with’ plus the plan name$name (string) name of the locked fieldwp_easycart_admin_warning_messagesFilters the warning notices shown at the top of the admin screens. Each message is a string or an array with text, tone, detail and actions.
$messages (array) warning messages, empty by defaultwp_easycart_cart_importer_suggestFilters whether the setup wizard suggests importing from another cart (default true).
$suggest (bool) true by defaultwp_easycart_cart_importer_suggest_max_productsFilters the maximum number of products a store can have before the setup wizard stops suggesting a cart import (default 3).
$max_products (int) product count, default 3wp_easycart_dashboard_widgetFilters whether the WordPress Dashboard shows the WP EasyCart widget. Default true.
$show (bool) Whether to show the widget (true).wp_easycart_detected_caching_pluginFilters the name of the caching plugin detected by the setup wizard; return a name to report a caching plugin WP EasyCart does not detect itself.
$plugin (string|null) The detected caching plugin name, null when none is found.wp_easycart_docs_index_apiFilters the docs site’s REST API address the docs index is fetched from. Default https://docs.wpeasycart.com/wp-json/wp/v2/.
$api (string) The REST API address.wp_easycart_document_attachment_gridFilters the rows (emails) and columns (PDF documents) of the document attachments grid in Settings > Documents.
$grid (array) emails => key => label and desc; documents => key => label.wp_easycart_document_optionsFilters the choices a document profile makes that are not on/off switches, such as the Invoice PDF heading.
$options (array) Option key => label, description and choices.$type (string) The document type.wp_easycart_document_preview_{type}Filters the HTML of a document preview in Settings > Documents for a type without a built-in preview. {type} is the document type.
$value (string) Preview HTML; empty by default.$order_id (int) The sample order id.$fields (array) The document field settings being previewed.wp_easycart_document_wording_keysFilters the language phrase keys a document type uses in the language editor.
$keys (array) Phrase keys grouped by language section.$type (string) The document type.wp_easycart_elementor_upgrade_urlFilters the upgrade (pricing) URL shown for a PRO Elementor feature.
$url (string) The pricing page URL.$feature (string) The feature key.wp_easycart_extension_cardFilters one extension card on the admin Extensions page.
$card (array) card data: state, chip HTML, status HTML and actions$ext (array) the extension’s catalog entry$context (array) premium state (active, lapsed or none), basename, active flag and versionwp_easycart_extension_slotLets an extension replace the HTML shown in a named slot (tax services, order labels, product tabs or integrations) on an admin screen.
$html (string|null) replacement HTML; null keeps the default$slot (string) slot name: tax_services, order_labels, product_tabs or integrations$slug (string) extension slug$context (array) premium state, active flag and the screen’s own datawp_easycart_extensions_catalogFilters the catalog of extensions listed on the admin Extensions page.
$catalog (array) extension slug => catalog entrywp_easycart_extensions_page_actionsFilters the header buttons HTML on the admin Extensions page, such as Check for updates and Update all.
$html (string) buttons HTML, empty by defaultwp_easycart_extensions_page_bannerFilters the banner HTML shown at the top of the admin Extensions page about the WP EasyCart Premium plugin.
$html (string) banner HTML$prem (string) Premium state: active, lapsed or none$plugin (array) Premium plugin details: installed, active and versionwp_easycart_policy_draftFilters the content of a policy page draft WP EasyCart writes from the store’s answers.
$html (string) The draft (block editor paragraphs and headings).$type (string) terms, privacy or returns.$f (array) The store’s answers.wp_easycart_policy_draft_factsFilters the store facts the policy page drafts are built from.
$facts (array) The store’s answers.wp_easycart_pro_dev_site_kind PROFilters what kind of development address WP EasyCart PRO takes the site to be: local, staging, subdomain, or empty for a live store. It decides how the license is checked and whether Activate license adds the site to the key’s development sites; WP EasyCart Connect checks the address again and refuses one it does not count as development.
$kind (string) local, staging, subdomain or empty, from the built-in address rules; any other value counts as empty.$host (string) The site’s host, without www.wp_easycart_pro_dev_sites_url PROFilters the base address of WP EasyCart Connect’s development sites service, which WP EasyCart PRO calls to activate, check and remove development copies of a license.
self::URL (string) https://connect.wpeasycart.com/pro/v1/dev/ by default; the action (activate, check or remove) is appended to it.wp_easycart_pro_license_recover_url PROFilters the address WP EasyCart PRO posts to when it asks WP EasyCart Connect for the license key of a store licensed by its site address with no key saved.
self::URL (string) https://connect.wpeasycart.com/pro/v1/recover by default.wp_easycart_pro_update_url PROFilters the address WP EasyCart PRO’s update checker asks for new PRO versions; the license key, or the licensed site address, is added after it as a query string. The older download script is still asked when this address does not answer.
$url (string) https://connect.wpeasycart.com/pro/v1/update by default.wp_easycart_recommended_settings_statusFilters the recommended settings status rows shown in the setup wizard.
$rows (array) Status rows, each with an overridden flag.$env The environment details the rows were evaluated against.wp_easycart_settings_field_lockedFilters whether a settings field or section is locked for the current license.
$locked (bool) True when locked.$field_or_section The field or section being checked.wp_easycart_settings_groupsFilters the settings groups in display order.
$groups (array) Group slug => label and hint.wp_easycart_settings_history_undo_{row}Filters the Undo of a settings history row that is not a plain setting. {row} is the row’s kind. Return true when it is undone, or a WP_Error to say why not.
new WP_Error( 'kind', ... ) (true|WP_Error) The result. Default: this kind of change cannot be undone here.$row (object) The history row.wp_easycart_settings_home_catalogFilters the catalog of settings pages shown on the Settings home.
$pages (array) Page slug => group, order, icon, title, description and plan.wp_easycart_settings_navigationFilters the settings pages grouped for the Settings home and sidebar navigation.
$out (array) Group slug => label, hint and pages.wp_easycart_settings_page_{slug}Filters a settings page declaration as it loads from its declaration file; {slug} is the settings page slug.
$decl (array) The settings page declaration before it is normalized.wp_easycart_settings_pagesFilters the full list of registered settings pages, letting a plugin add, change or remove pages.
$pages (array) Settings pages keyed by page slug.wp_easycart_settings_save_replyFilters the reply sent back to the browser after a settings page is saved by AJAX.
$reply (array) Response with saved, errors, warnings and message.$slug (string) Settings page slug.$saved_keys (array) Keys of the settings that were saved.wp_easycart_settings_search_itemsFilters extra searchable items for the settings search, for things inside custom page markup such as gateways and carriers.
$items (array) Search items, starts empty. Each item needs label and url, and can set desc, keywords, page_title, section_title, value_text and locked.wp_easycart_setup_areasFilters the setup areas behind the Settings home and the rebuilt settings pages. An extension may add an area or replace a built-in one.
$areas (array) Slug => wp_easycart_admin_setup_area object.wp_easycart_setup_checklistFilters the items shown in the store launch checklist.
$items (array) Checklist items keyed by item key, each with its dismissed state.wp_easycart_setup_grow_itemsFilters the Grow recommendations on the Settings home (things worth a look).
$items (array) Id => group, title, text, done, plan, label, url, upsell and locked.wp_easycart_setup_partsFilters the parts (cards) a setup area’s page, or the Settings home, prints.
$parts (array) Part => HTML.$slug (string) The area, or ” for the Settings home.wp_easycart_setup_wizard_assets_neededFilters whether the setup wizard styles and scripts load on the current admin screen; return true to load them on a page that embeds the checklist.
$needed (bool) Default false.wp_easycart_setup_wizard_country_currencyFilters the currency the setup wizard offers a store in a country.
$code (string) ISO 4217 currency code.$cc (string) ISO country code.wp_easycart_setup_wizard_country_factsFilters what the setup wizard saves for a store in a country.
$facts (array) currency, before, space, dec, thou, decimals, weight (lbs or kgs) and metric.$cc (string) ISO country code.wp_easycart_shell_breadcrumbFilters the breadcrumb shown in the admin shell header.
$crumb (array) The breadcrumb parts.$page (string) Current admin page slug.$subpage (string) Current subpage slug.wp_easycart_shell_help_videosFilters the list of help videos offered in the admin header help menu.
$videos (array) YouTube video id => video title.wp_easycart_shell_search_indexFilters the entries in the admin shell search index.
$items (array) Search entries, each with label, url, group and keywords.wp_easycart_shell_theme_recipeFilters the recipe that derives the admin brand color shades from the main brand color.
$recipe (array) CSS variable name => array( method, amount ), where method is black or white and amount is a mix ratio.wp_easycart_show_review_promptFilters whether the admin review prompt is shown.
$show (bool) True when the store has not reviewed the plugin and the prompt has been earned.wp_easycart_store_clock_suggestedFilters the time zone WP EasyCart suggests for the store from its country and state. A zone PHP does not know is ignored.
$zone (string) The zone, or ”.$cc (string) The country code.$state (string) The state or province.wp_easycart_table_cell_data_defaultFilters a cell value printed in an admin table for columns with no special format.
$value The column value from the row.$result (object) The full table row.$column_name (string) Column name.wp_easycart_table_cell_data_intFilters an integer cell value printed in an admin table, prefixed with # for id columns.
$value (string) The integer value, prefixed with # when the column is an id.$result (object) The full table row.$column_name (string) Column name.wp_easycart_tracking_checkin_fieldsFilters the fields of the weekly anonymous usage check-in, sent only by stores that turned on Anonymous usage data; WP EasyCart PRO adds its own. Keep to keys, flags and bands: personal fields are removed and the receiver keeps only fields it knows.
$data (array) Field => value: how the store is set up (gateways, shipping, taxes, carriers, features on), store size and health as bands, and getting-started milestones.wp_easycart_tracking_eventFilters one anonymous usage-data event before it is queued or sent; return false to drop it. Fields named for a person, a login or the site are removed afterwards.
$data (array) Key event (the event name) plus the event’s own fields.$event (string) The event name, such as setting_changed or upsell_open.wp_easycart_tracking_settingsFilters the settings whose changes are sent as an anonymous setting_changed usage event, with the setting’s short name and its new value; a change is sent only when the new value is a short plain key, such as on/off or a mode, so text never leaves the store.
array(...) (array) Option name => short name; by default ten settings such as ec_option_onepage_checkout => onepage and ec_option_marketing_consent => consent.wp_easycart_tracking_urlFilters the address anonymous usage data is posted to; return ” to send nothing and empty the waiting queue.
self::URL (string) The receiver, https://connect.wpeasycart.com/logging/logging.php by default.wp_easycart_trial_signup_urlFilters the trial signup address used by the admin. Default https://connect.wpeasycart.com/trial_signup/; anything not starting with https:// switches the trial signup off.
$endpoint (string) The signup address.wp_easycart_trial_start_contentFilters the trial and upgrade content in the admin; return an empty string to hide the trial offer.
$content (string) Default ‘true’.wp_easycart_upgrade_premium_urlFilters the URL of the Premium upgrade link in admin upsell messages.
$url (string) Premium upgrade URL.wp_easycart_upgrade_pro_url PROFilters the URL of the Pro upgrade link shown in admin notices.
$url (string) Pro upgrade URL, default the pricing page.wp_easycart_upsell_catalogFilters the catalog of upsell contexts and features used by admin upgrade messages.
$catalog (array) Upsell catalog.wp_easycart_upsell_contextFilters the upsell context chosen for the current admin screen.
$context (string) Upsell context key.wp_easycart_upsell_statsFilters the store statistics used in admin upsell messages, such as average order value and low stock count.
$stats (array) Store statistics.Storefront templates and design
Grouped by what they are about
46 filterswp_easycart_cart_fitFilters whether the cart and checkout are laid out for the space the theme gives them. Default from the Cart & checkout look setting under Settings > Design.
$enabled (bool) Whether the layout is fitted.wp_easycart_cart_fit_new_storeFilters whether a new store starts with its cart fitted to the theme’s content area. Default true; read once when an empty store’s base data is installed.
$on (bool) On (true).wp_easycart_cart_icon_htmlFilters the HTML of the cart icon output by the cart icon shortcode.
$cart_icon_html (string) default icon markup, an i element with the icon class$cart_icon (string) the icon class from the shortcode$atts (array) the shortcode attributeswp_easycart_cart_page_lookFilters the classic checkout’s cart page look. Any value other than classic gives modern.
$look (string) modern or classic.wp_easycart_classic_match_themeFilters whether the Classic store takes the theme’s colours and fonts (Settings > Design > Match my theme).
$on (bool) The setting.wp_easycart_elementor_add_to_cart_link_allowedFilters whether an Elementor add to cart link is allowed for a product.
$can (bool) Whether a link can add the product.$product (ec_product) The product.wp_easycart_elementor_add_to_cart_link_automatedFilters how an add to cart link request is classified as automated: prefetch (answered 503), bot (sent to the product page) or an empty string for a shopper.
$reason (string) prefetch, bot or an empty string.$agent (string) The request’s user agent, lower case.wp_easycart_elementor_add_to_cart_link_max_quantityFilters the maximum quantity an Elementor add to cart link can add; the result is kept between 1 and the built-in maximum.
$value (int) The default link quantity limit.wp_easycart_elementor_best_seller_idsFilters the product ids used for best sellers in Elementor shop widgets.
$ids (int[]) Product ids.wp_easycart_elementor_display_conditions_supportedFilters whether the installed Elementor Pro version is supported for WP EasyCart display conditions.
$version (string) The version being checked; the filtered value is whether it is supported (within 3.19 up to, not including, 5.0).$elementor_pro_version (string) The Elementor Pro version.wp_easycart_elementor_dynamic_tagsFilters the Elementor dynamic tags WP EasyCart registers.
$tags (array) Slug => class name.wp_easycart_elementor_help_urlFilters the Need help? address of a WP EasyCart Elementor widget or screen.
$url (string) The docs URL.$name (string) A widget’s name, the Site Settings tab id, or the help topic.wp_easycart_elementor_loop_limitFilters the maximum number of products an Elementor loop query looks up.
$value (int) Maximum products; 5000 by default.$query_id (string) The loop query id.wp_easycart_elementor_loop_post_idsFilters the ec_store post ids used by an Elementor loop query.
$post_ids (int[]) ec_store post ids.$query_id (string) The loop query id.wp_easycart_elementor_preview_category_idFilters the sample category id used to preview category templates in the Elementor editor.
$value (int) Category id; 0 to use the first active category.wp_easycart_elementor_preview_product_idFilters the sample product id used to preview product templates in the Elementor editor.
$value (int) Product id; 0 to use a sample product.wp_easycart_elementor_product_buy_templateFilters the template file path used by the Elementor product buy widgets.
$path (string) Absolute path to the template.$file (string) Template file name.wp_easycart_elementor_quick_view_allowedFilters whether quick view can open on this device in the Elementor shop widget.
$value (bool) Whether quick view is allowed; true by default.wp_easycart_elementor_related_product_idsFilters the related product ids shown for a product in Elementor shop widgets.
$ids (int[]) Related product ids.$product_id (int) The product.wp_easycart_elementor_retired_widgetsFilters the list of retired Elementor widgets and the widgets that replace them.
$value (array) Widget name => settings including the replacement name; empty by default.wp_easycart_elementor_role_contentFilters whether the store’s product lists differ per customer role, which keeps the page out of page caches.
$role_content (bool) Whether product content depends on the customer’s role.wp_easycart_elementor_shop_scopeFilters the category and manufacturer scope of an Elementor shop archive widget.
$scope (array) array( category id, manufacturer id ); array( 0, 0 ) by default.$settings (array) The widget settings.wp_easycart_elementor_starter_templateFilters the starter Elementor template content created for a product or category template.
$content (array) The template’s elements.$type (string) product or category.wp_easycart_elementor_template_forFilters which Elementor template is used to draw a product or category page.
$store (int) The store’s template for the type; 0 means the standard layout.$type (string) product or category.$object_id (int) The product_id or category_id.wp_easycart_elementor_template_hand_offFilters whether the [ec_store] shortcode may hand off to an Elementor template.
$value (bool) Whether hand off is allowed; true by default.$atts (array) The [ec_store] shortcode arguments.wp_easycart_elementor_widget_classesFilters the Elementor widget classes WP EasyCart registers, letting PRO add or replace widgets.
$value (array) Class name => file path; empty by default.wp_easycart_enable_elementor_account_elementsFilters whether the Elementor account widgets (account forms and account dashboard) are registered and their pages get account-style headers.
$enabled (bool) false by defaultwp_easycart_language_textFilters one phrase of the store’s language wording as templates print it (HTML, with [terms] and [privacy] already turned into links). The Elementor cart, checkout and account widgets use it to apply their own Texts settings while they draw.
$text (string|null) The phrase, or null when the language file has none.$lang_section (string) The language section, such as ec_errors.$lang_var (string) The phrase key within the section.wp_easycart_load_css_scriptsFilters whether WP EasyCart loads its front-end CSS (and dashicons).
$load (bool) true by default; return false to skip loadingwp_easycart_load_js_scriptsFilters whether WP EasyCart loads its front-end JavaScript.
$load (bool) true by default; return false to skip loadingwp_easycart_prod_details_video_controlsFilters the attributes on the product page video tag.
$controls (string) Attribute string for the video element, default ‘controls’.wp_easycart_product_brand_logoFilters the brand logo the Elementor Product Meta widget shows for a product.
$logo (int|string) An attachment id or an image URL; by default the featured image of the manufacturer’s page, or 0 for none.$product (ec_product) The product.wp_easycart_store_item_as_pageFilters whether a store item (product, category or manufacturer) is presented as a page; return false to keep it a store item, as Elementor Pro Theme Builder needs.
$as_page (bool) Default true.wp_easycart_store_policies_schemaFilters the store policies part of the store’s structured data (schema.org).
$out (array) Policy schema properties, such as shipping services and return policy.wp_easycart_store_return_policy_schemaFilters the merchant return policy structured data (schema.org).
$out (array) Return policy schema.wp_easycart_store_schemaFilters the complete OnlineStore structured data (schema.org) built for the store.
$schema (array) Store schema merged with its policies.wp_easycart_storefront_contrast_pairsFilters the colour pairs the design’s contrast guard checks: a colour token, what it sits on, and the WCAG ratio it must reach.
$pairs (array) Token => array( panel or another token, the ratio: 4.5 for text, 3 for the focus ring ).wp_easycart_storefront_theme_matchFilters what Match my theme found out about the active theme’s colours and fonts.
$found (array) Token => array( value, source ).$template (string) The parent theme’s folder, lower case.wp_easycart_storefront_tokensFilters the list of the store’s design tokens (the –wpec-* CSS variables).
$catalog (array) The tokens.wp_easycart_tabs_icons TabsFilters the line icon set that tabs and blocks can use, in the tab designer and on the product page; add an icon by name or replace one.
$icons (array) Icon name => SVG inner markup on a 24px grid, drawn as a stroke in currentColor; the 100 icons that ship with Tabs by default. Tab icon names keep only letters and digits.wp_easycart_tabs_load_assets TabsFilters whether the Tabs stylesheets are queued in the page head on this request so the tabs never show unstyled; when false they print with the first tab area instead.
$is (bool) True when the request shows a product: a product page, or a page with [ec_product_details], [ec_product_details_tabs], or [ec_store] with a model_number in the address.wp_easycart_tabs_takeover TabsLets a product keep WP EasyCart’s classic tabs while the store uses a Tabs style; return false to leave this tab list to the classic tabs. It runs only when the chosen style is not classic.
true (bool) Draw the tabs in the store’s tab style, true by default.(int) $product_id (int) The product id.$rand (int|string) The tab list’s id on the page.wp_easycart_vacation_mode_textFilters the vacation mode message shown in place of the add-to-cart button when the store displays as a catalog.
$text (string) The vacation mode button text.$product_id (int) Product id.wp_easycart_withdrawal_footer_buttonFilters whether the withdrawal button prints at the foot of the current storefront page; return false to hide it there. Asked only while the button and Show the button at the foot of every page are on, and never on the withdrawal page itself.
true (bool) Show the button, true by default.wp_easycart_withdrawal_viewFilters what the withdrawal page shows ([ec_withdrawal], or the account page’s withdrawal view) before the ec_withdrawal.php template draws it.
$data (array) Keys view (start, form, review, received, closed, already, lookup or off), heading, errors, values, order, summary, record, check, action, page_url, lookup, ajax_url, language and next (the What happens next text).wpeasycart_product_details_tabs_takeoverLets an extension draw the product page’s tab area itself; return true and print it on wpeasycart_product_details_tabs_area. Asked only when something is hooked to that action.
false (bool) False: the classic tab list.$product (ec_product) The product.$rand (int|string) The tab list’s id on this page.$atts (array) Shortcode attributes, such as show_description, show_specifications and show_customer_reviews.Pickup and scheduling
Grouped by what they are about
17 filterswp_easycart_admin_schedule_details_basic_fields_list PROFilters the field definitions in the basic section of the admin schedule details screen.
$fields (array) field definitions for the schedule basicswp_easycart_local_pickup_labelsFilters the shipping method texts that identify an order as local pickup.
$texts (array) shipping method label strings treated as local pickupwp_easycart_location_addressFilters the formatted address string shown for a pickup location.
$location_address_format (string) formatted address line$location (object) the location rowwp_easycart_location_distanceFilters the distance text shown for a pickup location in the location picker, in miles or kilometers.
$distance_text (string) formatted distance text$location (object) the location rowwp_easycart_order_is_local_pickupFilters whether an order counts as a local pickup order.
$is_pick (bool) true when the shipping method matches a local pickup label$order the order (array)wp_easycart_order_pickup_kindFilters how a customer collects an order. A pickup order gets Mark picked up on the order screen and the orders list instead of the shipping flow; any value other than restaurant, preorder or local counts as shipped.
$kind (string) restaurant, preorder, local (local pickup) or empty when the order ships.$order (object|array) The ec_order row.wp_easycart_pickup_date_jquery_formatFilters the jQuery UI date format used by the pickup date picker on the cart payment step and the admin order screen.
$format (string) jQuery UI dateFormat string, default ‘MM d, yy’.wp_easycart_pickup_date_placeholder_format PROFilters the PHP date format used to display a pickup date on order screens, receipts and account pages.
$format (string) PHP date format, such as ‘F d, Y’.wp_easycart_pickup_day_labelFilters the words for a pickup day in the pickup day list shoppers choose from.
$label (string) The words, such as the weekday and date.$day (string) The day, Y-m-d.wp_easycart_pickup_errorFilters what stops a cart’s pickup at checkout.
$error (string) preorder_pickup, restaurant_closed or ”.$cart (ec_cart) The cart.wp_easycart_pickup_hoursFilters the pickup hours a schedule day offers.
$out (string[]) The start of each hour, HH:MM.$row (object) The schedule row.wp_easycart_pickup_nowFilters the moment the pickup days are worked out from (useful for tests). Return a DateTimeImmutable.
$now (DateTimeImmutable) Now, in the store’s time zone.wp_easycart_pickup_preorder_daysFilters the days, and the hours each day, a shopper may pick up preorder items.
$out (array) Y-m-d => the hours offered (HH:MM).$location (int) The pickup location whose schedule applies; 0 for the store’s.wp_easycart_pickup_time_close_placeholder_formatFilters the PHP time format used to display the end of a pickup window on order pages and receipts.
$format (string) PHP date format, default ‘g:i A’.wp_easycart_pickup_time_placeholder_formatFilters the PHP date format used to display a pickup time (restaurant orders) on order pages and receipts.
$format (string) PHP date format, default ‘g:i A F d, Y’.wp_easycart_restaurant_order_aheadFilters whether restaurant orders are taken while the restaurant is closed, for pickup when it next opens (Settings > Checkout, Take restaurant orders while you’re closed).
$on (bool) The ec_option_restaurant_order_ahead setting.wp_easycart_store_hours_htmlFilters the HTML of the [ec_store_hours] shortcode.
$html (string) The HTML.$card (string) The schedule card shown.$atts (array) The shortcode attributes.Downloads and gift cards
Grouped by what they are about
24 filterswp_easycart_account_downloads_listedFilters whether My Account lists the Downloads page. Default true when the store sells downloads or the customer has bought one.
$listed (bool) Whether the page is listed.$page (ec_accountpage) The account page.wp_easycart_admin_downloads_details_basic_fields_list PROFilters the list of basic field definitions shown on the admin download details form.
$fields (array) Field definitions, each an array with keys such as name, type, label and required.wp_easycart_admin_product_details_downloads_fields_listFilters the field definitions of the Digital Download card in the product editor’s Type settings section.
$fields (array) field definitions, each an array with name, type, label and related keys$product (object) the product being editedwp_easycart_cancel_return_giftcardFilters whether the gift card amount a cancelled order used goes back onto its card; return false to leave it spent. Also asked with order id 0 to word the Cancel this order? confirmation.
$on (bool) The Give gift card balances back when an order is cancelled setting (Settings › Checkout), on by default.(int) $order_id (int) The order id, or 0 when asked for the store as a whole.wp_easycart_customer_downloadFilters whether a customer may download a given order document (receipt, invoice, packing slip or gift receipt) from the storefront.
$on (bool) The store’s Customer downloads switch.$key (string) Document: print_receipt, success_print_receipt, receipt_pdf, invoice_pdf, packing_slip or gift_receipt.$order_id (int) The order id.wp_easycart_customer_upload_denied_extensionsFilters extra file extensions to block from customer uploads; extensions returned are added to the built-in denied list and cannot remove from it.
$extra (array) Additional file extensions to deny; empty by default.wp_easycart_customer_upload_file_typesFilters the file types shoppers may upload; denied extensions are removed from the result afterwards.
$types (array) Type key => array with extensions and mimes.wp_easycart_document_attachment_cell PROFilters how a PDF document is attached to an order email (off, attach or link, plus profile).
$cell (array) Attachment setting: mode (off | attach | link) and profile.$email (string) The email (grid row).$doc (string) The document (grid column).$order_id (int) The order id.wp_easycart_download_allowedFilters whether a customer may download from an order line, both when a download link is opened and when My Account lists downloads; return false to refuse. A refused link sends the customer back to the order with a note.
$allowed (bool) True when the order’s status counts as paid and none of the line’s options switches the download off.$orderdetail_row (object) The order line (ec_orderdetail row).wp_easycart_download_file_addressFilters the address the store downloads a product’s download file from when it is given a web address. Google Drive and Dropbox share links are turned into their download links first.
$fetch (string) The address to download.$url (string) The address given.wp_easycart_download_file_limitFilters the largest download file the store copies from a web address.
512 * MB_IN_BYTES (int) Bytes. Default 512 MB; 0 means no limit.wp_easycart_gift_card_issuerLets an outside system issue the gift cards an order sells. Return a non-empty issuer and WP EasyCart creates no gift card code or email for the line, leaving that issuer to make the card once the order is paid (WP EasyCart PRO returns square when Gift cards you sell are Square gift cards is on).
'' (string) The issuer, empty by default (WP EasyCart issues the card).$cart_item (ec_cartitem) The gift card line.$this->order_id (int) The order id.$payment_type (string) The payment type, such as manual_bill or third_party, or the card brand for a card payment.wp_easycart_gift_card_usedFilters whether a gift card number WP EasyCart does not hold exists but has nothing left. Return true and the gift card box says the card is used up and takes it off the cart, instead of calling it an invalid number.
false (bool) Used up, false by default.(string) $code (string) The number the shopper typed.wp_easycart_gift_card_valueFilters what a sold gift card that WP EasyCart does not hold is worth, for the gift card email and its print page. Return null to use the order line’s value.
null (float|null) The card’s value, null by default.$code (string) The gift card number saved on the order line.wp_easycart_giftcard_labelFilters the name shown for a gift card an order used on receipts, My Account, the order screen and the order timeline. WP EasyCart PRO shows a Square gift card by its last four digits.
$code (string) The label, the gift card code by default.$code (string) The gift card code as saved on the order.wp_easycart_giftcard_shareFilters how much of the order a gift card pays once the grand total is known. A filter can lower the share but never raise it.
$most (float) The most the card can pay: its balance in whole cents, capped at what the order still owes less any gift cards bought in the same order (products only when Gift cards cover the grand total is off).$owed (float) The grand total before the gift card.$this (ec_discount) The order’s discount object.wp_easycart_giftcard_source PROFilters who holds the balance of the gift card an order used. Empty means a WP EasyCart gift card; any other name sends cancels and refunds to the card through wp_easycart_giftcard_source_return and wp_easycart_giftcard_source_take (WP EasyCart PRO returns square for a Square gift card).
'' (string) The source, empty by default (WP EasyCart).(string) $code (string) The gift card as saved on the order (ec_order.giftcard_id).(int) $order_id (int) The order id.wp_easycart_giftcard_source_returnLets an outside gift card system put an amount an order used back on its card when the order is cancelled or refunded to the card. Return the amount put back, or a WP_Error saying why nothing was; with no answer nothing goes back and a staff note says so.
null (float|WP_Error|null) The amount put back, null by default.$card['source'] (string) The wp_easycart_giftcard_source answer, such as square.$order_id (int) The order id.$card['id'] (string) The gift card as saved on the order.(float) $amount (float) The amount to put back.$via (string) cancelled or refund.wp_easycart_giftcard_source_takeLets an outside gift card system take the amount a cancel gave back off its card again when the cancelled order is reopened. Return the amount taken (less when the card holds less), or a WP_Error saying why nothing was.
null (float|WP_Error|null) The amount taken, null by default.$card['source'] (string) The wp_easycart_giftcard_source answer, such as square.$order_id (int) The order id.$card['id'] (string) The gift card as saved on the order.(float) $amount (float) The amount to take.wp_easycart_square_sells_gift_cardsFilters whether the gift cards the store sells are Square gift cards. While it is false, the Square import notes that an imported Square gift card item sells WP EasyCart gift cards; WP EasyCart PRO returns true when Gift cards you sell are Square gift cards is on.
false (bool) Sells Square gift cards, false by default.wp_easycart_store_sells_downloadsFilters whether the store sells downloads, which lists My Account’s Downloads page. Default true when a product is a download.
$sells (bool) Whether a product is a download.wp_easycart_success_page_line_downloadsFilters the download links shown under an order line on the order confirmation page.
$out (array[]) Each: url and label.$detail (ec_orderdetail) The order line.$order (ec_orderdisplay) The order.wpeasycart_get_gift_card_balanceFilters the gift card row loaded when a gift card code is redeemed.
$giftcard (object) Gift card database row.$giftcardcode (string) The gift card code entered.wpeasycart_redeem_gift_cardLets an outside gift card system (such as WP EasyCart PRO’s Square gift cards) redeem the order’s gift card before the payment is taken; return false or a WP_Error to stop the order (the error’s message goes to the shopper). WP EasyCart’s own cards are taken off once the order is paid.
$this->discount->giftcard_code (string|bool|WP_Error) The gift card code; return it (or another truthy value) when redeemed.$this->order_id (int) The order id.$this->discount->giftcard_discount (float) The gift card’s share of the order.$wpec_payment_kind (string) credit_card, affirm, manual_bill, third_party, ideal or amazonpay.$this (ec_order) The order.Integrations and extensions
Grouped by what they are about
58 filterswp_easycart_abilitiesFilters the abilities (tools) WP EasyCart registers for AI assistants. WP EasyCart PRO and extensions add theirs here. Never rename an ability: assistants and saved permissions know them by name.
$defs (array) Ability name (without the wp-easycart/ namespace) => label, description, category, kind, caps, input, callback and more.wp_easycart_abilities_blocked_keysFilters the settings an AI assistant can read but never change.
$keys (array) Option keys. By default the AI assistant permission settings and ec_option_allow_tracking.wp_easycart_abilities_blocked_pagesFilters the settings pages an AI assistant can read but never change.
$pages (array) Settings page slugs. Default payment, checkout-protection and admin.wp_easycart_abilities_delivery_wordsFilters the regular expression that makes a modifier read as a delivery charge, for the warning an AI assistant gets on a product that is picked up or does not ship.
$pattern (string) A regular expression.wp_easycart_bluecheck_api_base BlueCheckFilters the BlueCheck API base URL.
$base (string) API host, https://customer-api.bluecheck.me by defaultwp_easycart_bluecheck_dob_order BlueCheckFilters the order of the month, day and year boxes in BlueCheck’s date of birth field at checkout; an answer that is not m, d and y once each is ignored.
$order (string[]) m, d and y in order: month, day, year for en_US, es_US, en_PH and fil; year first for Japanese, Chinese, Korean, Hungarian, Lithuanian and Mongolian; else day, month, year.$locale (string) The locale in use.wp_easycart_bluecheck_hold_notice BlueCheckFilters the notice a customer reads about an order held as Age Check Pending, shown in place of the payment-processing notice on the order confirmation page, in My Account and in the receipt email.
$text (string) The notice; its wording depends on whether the check failed, waits for a photo ID, or is still to come.$order (object) The order (ec_order row or ec_orderdisplay).$record (array|null) The order’s latest age check record (ec_bluecheck_check row with status and decoded meta), or null.wp_easycart_bluecheck_move_block BlueCheckFilters whether the classic checkout’s Your age block is moved above Billing Information as the page loads; return false to leave it with the order notes at the foot of the page, where it is printed.
true (bool) Move it, true by default.wp_easycart_bluecheck_person BlueCheckFilters the shopper’s details sent to BlueCheck for age verification.
$person (array) first_name, last_name, email, phone, address_1, address_2, city, state, zip, country$cd (object|null) the checkout sessionwp_easycart_bluecheck_requirement BlueCheckFilters the BlueCheck age verification requirement for the cart.
$out (array) requirement with required, age, blocked, products and scope$product_ids (int[]) products in the cart$country (string) ship-to country$state (string) ship-to statewp_easycart_bluecheck_store_check_url BlueCheckFilters the BlueCheck order token check URL.
$url (string) default https://verify.bluecheck.me/age-verification/api/check-tokenwp_easycart_consent_sourceFilters which cookie consent source WP EasyCart reads before loading tracking tags; the value must be one of the known sources or it is ignored.
$source (string) off, wp_consent_api, google_consent_mode, cookiebot, cookieyes, complianz or any.$setting (string) The choice saved on Settings > Integrations > Cookie consent.wp_easycart_elementor_pro_featuresFilters the list of Elementor features that WP EasyCart PRO provides, so the free plugin can show them as active.
$value (array) Feature keys provided by PRO; empty by default.wp_easycart_email_marketing_klaviyo_revision Email MarketingFilters the Klaviyo API revision date sent with every Klaviyo call; it must be in YYYY-MM-DD format.
$value (string) The API revision.wp_easycart_email_marketing_order Email MarketingFilters the neutral order record sent to the connected email marketing service.
$record (array) The neutral order record.$order (object) The ec_order row.wp_easycart_email_marketing_product Email MarketingFilters the neutral product record sent to the connected email marketing service.
$record (array) The neutral product record.$product (object) The ec_product row.wp_easycart_email_marketing_service Email MarketingFilters the service adapter the store uses to talk to the email marketing service.
$adapter (wp_easycart_email_marketing_service) The adapter for the connected service.wp_easycart_email_marketing_services Email MarketingFilters the email marketing services the extension can connect, one at a time.
$value (array) Service slug => adapter class name; mailchimp and klaviyo by default.wp_easycart_email_marketing_{service}_service_url Email MarketingFilters the base URL of the connection service for an email marketing service. {service} is the service slug, such as mailchimp or klaviyo.
$url (string) Base URL, https://connect.wpeasycart.com/{service}/ by default.wp_easycart_facebook_feed_columns Facebook & InstagramFilters the list of column names written to the Facebook and Instagram product feed CSV.
$columns (array) feed column names, including video url columnswp_easycart_facebook_image_size Facebook & InstagramFilters the WordPress image size used for product images sent to Facebook and Instagram.
$size (string) image size name, default ‘large’wp_easycart_facebook_item Facebook & InstagramFilters a finished Facebook and Instagram catalog item before it is used.
$item (array) the catalog item$product (object) the ec_product row$variant (object|null) the ec_optionitemquantity row, or null for a product without a variantwp_easycart_facebook_item_availability Facebook & InstagramFilters the availability text sent to Facebook and Instagram for an item.
$availability (string) ‘in stock’ or ‘out of stock’$state (string) stock state: in_stock, preorder, backorder or out_of_stock$product (object) the product rowwp_easycart_facebook_item_issues Facebook & InstagramFilters the list of problems found with a Facebook and Instagram catalog item.
$issues (array) issues found for the item$item (array) the catalog item that was checkedwp_easycart_facebook_item_link Facebook & InstagramFilters the product page link sent to Facebook and Instagram for a product.
$link (string) product URL$product (object) the product rowwp_easycart_facebook_item_price Facebook & InstagramFilters the price sent to Facebook and Instagram for a product, after any VAT multiplier is applied.
$price (float) the item price$product (object) the product rowwp_easycart_facebook_item_vat_multiplier Facebook & InstagramFilters the VAT multiplier applied to prices sent to Facebook and Instagram.
$multiplier (float) 1 + VAT rate / 100, or 1 when no VAT applies$product (object) the product rowwp_easycart_facebook_option_attribute Facebook & InstagramLets you map a product option label to a Facebook attribute name when the built-in matching (such as material or pattern) finds none.
$attribute (string) attribute name, empty by default$label (string) the option label, lowercasedwp_easycart_facebook_product_exclusion Facebook & InstagramLets you exclude a product from the Facebook and Instagram catalog by returning a reason code.
$reason (string) exclusion reason; empty keeps the product in the catalog$product (object) the product rowwp_easycart_facebook_product_set_filter Facebook & InstagramFilters the Meta product set filter built for a store category when product sets are synced.
$filter (array) the Meta product set filter$category_id (int) the category ID$product_ids (int[]) IDs of the products in the categorywp_easycart_facebook_reason_label Facebook & InstagramFilters the label shown for an item exclusion reason code that has no built-in label.
$label (string) the label, initially the reason code itself$code (string) the reason codewp_easycart_facebook_request_data Facebook & InstagramFilters the data array sent to Facebook and Instagram when an item is created or updated.
$data (array) request fields for the item$item the catalog item being sentwp_easycart_facebook_stock_events Facebook & InstagramFilters the list of order events after which Facebook and Instagram stock is re-synced.
$events (string[]) event and action names, such as wpeasycart_order_paid and wpeasycart_full_order_refundwp_easycart_fulfillment_providersLets fulfillment partner extensions register themselves as fulfillment providers.
$providers (array) provider slug => array with label, active, url and order_url (a callable taking $order_id and $ref); empty by defaultwp_easycart_google_feed_item PROFilters a finished product item in the Google Merchant Center feed before it is output.
$item (array) the Google feed itemwp_easycart_google_feed_pro_licensed PROFilters whether the site counts as licensed for the Pro Google feed.
$licensed (bool) true when the WP EasyCart license is validwp_easycart_google_relay_url PROFilters the base URL of the WP EasyCart relay service used by the Google Merchant connection.
$url (string) base URL, default https://connect.wpeasycart.com/google/wp_easycart_groupon_report_columns GrouponFilters the columns of the Groupon deal redemption report CSV.
$columns (array) column key (code, voucher_ref, redeemed, orders, discount) => header$site (string) deal site slugwp_easycart_groupon_sites GrouponFilters the list of deal sites, such as Groupon, that the Groupon extension supports.
$sites (array) site slug => settings including label, paid_value, report and helpwp_easycart_marketing_contact PROFilters the contact data sent to an email marketing provider for a shopper.
$contact (array) contact data$email (string) the shopper’s email addresswp_easycart_marketing_providers PROFilters the registered email marketing provider connections.
$providers (array) provider id => wp_easycart_marketing_provider objectwp_easycart_meta_connection PROLets the Facebook and Instagram extension supply its connection details (pixel and token) to the Meta Conversions API.
$connection (array|null) connection with connected, name, pixel_id, token, settings_url and source keys; null when there is nonewp_easycart_meta_content_id Facebook & InstagramFilters the content ID sent to Meta for a product or variant, in the form product_id or product_id_variant_id.
$content_id (string) {product_id} or {product_id}_{optionitemquantity_id}$product_id (int) the product ID$optionitemquantity_id (int) the variant row ID, 0 for the productwp_easycart_oauth_keeps_refreshFilters whether an AI assistant’s sign-in keeps one refresh token for its life instead of a new one at every refresh. Default true for Google’s apps (Gemini).
$keeps (bool) True for Google apps.$redirect_uri (string) Where the app’s sign-in returned.$client (array) The app.wp_easycart_premium_download_urlFilters the link that downloads WP EasyCart Premium as a .zip for a current Premium license, offered on the Extensions page banner when the site does not allow plugins to be installed from the dashboard. Return empty to fall back to the plain download link; WP EasyCart PRO supplies its licensed download here.
'' (string) The download link, empty by default. Asked only for a user who can manage options while WP EasyCart Premium is not installed.wp_easycart_premium_install_statusFilters why the one-click install of WP EasyCart Premium is not offered, which picks the wording and buttons of the Extensions page banner; WP EasyCart PRO answers it. Not asked when the user cannot install plugins, the site allows no installs from the dashboard or PRO has no one-click install.
$status (array) Keys reason (unknown by default; PRO answers such as not_premium, expired, inactive, not_offered, site or unreachable) and checked (when the download server last answered, a timestamp, or 0).wp_easycart_premium_install_urlFilters the URL used for one-click installation of WP EasyCart Premium and its extensions.
$url (string) Install URL, empty when one-click install is not available.$slug (string) The extension to install afterwards, or an empty string.wp_easycart_premium_public_zip_url PROFilters the plain link to the current WP EasyCart Premium .zip, which needs no license, that WP EasyCart PRO offers when its licensed download is not available or did not work: on the install credentials page and in its install and download error notices.
$url (string) https://connect.wpeasycart.com/premium/v1/latest/wp-easycart-premium.zip with source=pro, the site address and the PRO, WP EasyCart, WordPress and PHP versions as query arguments.wp_easycart_premium_zip_linkFilters the plain link to the current WP EasyCart Premium .zip, which needs no license, behind Download WP EasyCart Premium ( .zip ) on the Extensions page banner, unless WP EasyCart PRO supplies its licensed download there.
$url (string) https://connect.wpeasycart.com/premium/v1/latest/wp-easycart-premium.zip with source=free, the site address and the WP EasyCart, PRO, WordPress and PHP versions as query arguments.wp_easycart_pro_license_facts PROFilters the license facts WP EasyCart Premium reads.
$facts (array) key, site, tier, model, trial, licensed, lapsed and end.wp_easycart_qbo_service_url QuickBooks OnlineFilters the base address of the WP EasyCart connection service for QuickBooks Online. Default https://connect.wpeasycart.com/quickbooks/.
$url (string) The base URL.wp_easycart_qbo_tax_service_active QuickBooks OnlineFilters whether a tax service works out and files this store’s sales tax, in which case the sales tax liability line is suggested.
$on (bool) Whether a tax service was detected.wp_easycart_square_inventory_adjustmentFilters the inventory adjustment sent to Square when WP EasyCart changes the stock of a product linked to Square: a sale moves units from IN_STOCK to SOLD, stock put back moves them from UNLINKED_RETURN to IN_STOCK. The quantity must stay a positive decimal string.
$adjustment (array) Square adjustment fields: catalog_object_id, quantity, from_state, to_state, location_id and occurred_at.$quantity (int|float) Units sold (positive) or put back (negative).$item_id (string) The Square catalog object id of the item variation.wp_easycart_xero_app_scopes XeroFilters the scopes asked of the store’s own Xero app. Default offline_access accounting.settings accounting.contacts accounting.invoices accounting.payments; an app made before Xero’s granular scopes may need accounting.transactions instead.
$scopes (string) Space-separated scopes.wp_easycart_xero_service_url XeroFilters the base address of the WP EasyCart connection service for Xero. Default https://connect.wpeasycart.com/xero/.
$url (string) The base URL.wp_easycart_zapier_app_url ZapierFilters the link that adds WP EasyCart to a merchant’s Zapier account. Anything not starting with https:// gives no link.
$url (string) The invite link during early access, else the app’s Zapier listing.wp_easycart_zapier_hook_url_allowed ZapierFilters whether a Zap’s hook URL may be saved. By default only https://hooks.zapier.com/ addresses are allowed.
$ok (bool) Whether the URL is allowed.$url (string) The hook URL.wp_easycart_zapier_pre_send ZapierFilters a Zapier delivery before it is posted. Default null, which posts it; return an HTTP status code or a WP_Error to skip the post.
$pre (null|int|WP_Error) Null to post.$hook (object) The hook row.$event (string) The event.$payload (array) The record sent.Import and export
Grouped by what they are about
16 filterswp_easycart_admin_inventory_export_headerFilters the header row of the inventory CSV export.
$header (array) Column key => label written to the file.wp_easycart_admin_inventory_export_rowFilters each data row of the inventory CSV export before it is written.
$csv_row (array) Cells in header order.$row (object) Database row with product_id, oiq_id, title, variant_label, sku, row_type, tracked and quantity.wp_easycart_admin_inventory_import_columns PROFilters the header names the inventory importer accepts for each column role.
$columns (array) Role (variant_id, product_id, sku, qty) => array of accepted header names.wp_easycart_csv_export_bomFilters whether a CSV export starts with the UTF-8 byte order mark. Default true.
$bom (bool) Whether to write the mark (true).$export (string) Which export.wp_easycart_import_sourcesFilters the stores the importer (Products › Import) can move products from; add a source by its id and a class name or object that extends wp_easycart_import_source.
array(...) (array) id => class name or object; woocommerce and square by default.wp_easycart_import_start_choicesFilters the import choices the products list shows a store with no products, under Have a store to bring over?
$choices (array[]) The choices.wp_easycart_order_export_fee_typesFilters the fee labels that become extra columns in the order export.
$fee_rows (array) rows of objects with a fee_label propertywp_easycart_order_export_keys PROFilters the full list of column keys in the order export CSV.
$keys (array) column keyswp_easycart_order_export_order_keysLets extensions add order-level columns to the order export CSV.
$keys (array) additional column keys, empty by defaultwp_easycart_order_export_order_valuesSupplies values for the extension-added order export columns for a chunk of orders.
$values (array) order id => column key => value, empty by default$chunk_order_ids (array) order IDs in the current chunk$wpec_order_keys (array) the extension column keys added through the order keys filterwp_easycart_order_export_single_keys PROFilters the list of order export columns that are written once per order rather than once per line item.
$single_keys (array) column keys that are single-use per order, such as sub_total, grand_total and order_datewp_easycart_order_field_export_columnsFilters the checkout field columns included in the order export.
$out (array) checkout field key => column namewp_easycart_product_csv_template_rowsFilters the example rows of the product CSV templates you can download for the product import.
$rows (array[]) The rows.$kind (string) starter or full.wp_easycart_product_export_yoast_descriptionFilters whether the products CSV export adds the yoast_meta_description column. Default true when Yoast SEO is active.
$add (bool) Whether to add the column.wpeasycart_admin_order_export_fileFilters the file path of the template that exports orders to CSV.
$file (string) Path to export-orders-csv.php.wpeasycart_admin_order_stamps_export_fileFilters the file path of the template that exports orders to a Stamps.com CSV.
$file (string) Path to export-orders-stamps-csv.php.API and mobile app
Grouped by what they are about
10 filterswp_easycart_api_controllers API pluginFilters the WP EasyCart API’s REST controllers. A class outside the API’s includes/rest folder must be loaded first.
$controllers (array) Route base => class name.wp_easycart_api_download_url_problem API pluginFilters why a download file’s web address sent to the WP EasyCart API cannot be used. Return an empty string to allow it.
$problem (string) The message, or ”.$url (string) The address.wp_easycart_api_pro_licensed API pluginFilters whether the store’s WP EasyCart PRO license lets the WP EasyCart API turn on PRO product features. Without it those requests answer 503.
$licensed (bool) WP EasyCart PRO’s answer.wp_easycart_api_product_image_url_problem API pluginFilters why a product image’s web address sent to the WP EasyCart API cannot be fetched. Return an empty string to allow it.
$problem (string) The message, or ”.$url (string) The address.wp_easycart_api_rate_limit API pluginFilters how many requests one WP EasyCart API credential may make in any 60 seconds. 0 means no limit.
self::LIMIT (int) Default 120.$credential (string) key:<id> or user:<id>.wp_easycart_api_webhook_disabled_email API pluginFilters the email sent to the store owner when the WP EasyCart API turns a webhook off. Return an array without to or subject to send nothing.
$mail (array) to, subject and message.$hook (object) The webhook row.$reason (string) gone, failing or secret.wp_easycart_api_webhook_events API pluginFilters the events WP EasyCart API webhooks can send. Each event name is resource.action, such as order.created.
$events (array) Event name => label, group, description and record (a callable that answers the record as the REST route does, or null to send nothing).wp_easycart_api_webhook_pre_send API pluginFilters a webhook delivery before the WP EasyCart API sends it. Return a result to skip the request; null sends it.
null (int|WP_Error|null) The response code to record, or null.$hook (object) The webhook row.$row (object) The delivery row.$headers (array) The headers.$body (string) The body.wp_easycart_api_webhook_url_problem API pluginFilters why a webhook’s target address cannot be used. Return an empty string to allow it.
$problem (string) The message, or ”.$url (string) The address.wp_easycart_recordFilters one store record as other systems read it: the WP EasyCart API’s routes and webhooks, WP EasyCart for Zapier and the AI assistant tools. Records never hold passwords, card details, gateway tokens, admin notes or IP addresses.
$record (array) The record.$type (string) order, order_line, shipment, order_status, customer, customer_role, subscriber, subscription, subscription_change, subscription_plan, product, variation, category, manufacturer, option_set, abandoned_cart, review, withdrawal, download or stock_change.$row (mixed) The row it was built from.Other
Grouped by what they are about
7 filterswp_easycart_asset_version_by_fileFilters whether WP EasyCart’s own scripts and styles carry the file’s modified time in their version. Default true; return false to leave the address unchanged.
$on (bool) Whether to version by file (true).$src (string) The asset’s address.$handle (string) The asset’s handle.wp_easycart_collation_auto_max_bytesFilters the largest table (bytes of data and indexes) the upgrade changes to the store’s collation by itself. Larger tables wait for Store Status or WP-CLI.
self::AUTO_MAX_BYTES (int) Bytes.wp_easycart_currency_country_formatFilters how a country writes amounts.
$format (array|null) before, space, dec and thou, or null when not known.$country (string) ISO country code.$locale (string) WordPress locale.wp_easycart_table_collationsFilters the collation WP EasyCart’s tables are matched to for each character set.
$out (array) Character set family (utf8mb4, utf8mb3, latin1 …) => collation.$anchor (array|null) The character set and collation of the store’s own tables.wpeasycart_post_sync_direct_writesFilters whether WP EasyCart’s post sync writes posts with direct database queries instead of wp_insert_post and wp_update_post.
$direct (bool) True for mobile app (amfphp) requests by default, false otherwise.wpeasycart_post_sync_force_deleteFilters whether the synced WordPress post is permanently deleted, skipping the trash, when its store item is removed.
$force (bool) True to delete permanently; defaults to true.$type (string) Synced item type.$entity_id (int) Store item id.$post_id (int) WordPress post id.wpeasycart_post_sync_registryFilters the registry of item types the post sync keeps in step with WordPress posts.
$registry (array) Item type => settings such as table, primary key and shortcode attributes.Keep going
Related panels
Installing the extensions that add their own hooks.
The REST API and signed webhooks, for systems outside WordPress.
Ready to run your store on WP EasyCart?
Everything in this guide works with the free plugin. PRO and Premium add subscriptions, memberships, wholesale pricing and more. Try every PRO feature free for 14 days.
