Create Woo Customer Count Shortcodes & Action Hooks

if (!function_exists(‘rd_wc_customer_count_get’)) { function rd_wc_customer_count_get(array $args = array()): int { if (!function_exists(‘WC’)) { return 0; } global $wpdb; $defaults = array( ‘scope’ => ‘all’, ‘registered_only’ => false, ‘roles’ => array(‘customer’), ‘require_role’ => false, ); $args = array_merge($defaults, $args); $scope =…Continue reading

Enable Clean “Back” Button URL Reference

document.addEventListener(‘DOMContentLoaded’, function() { document.querySelectorAll(‘a[href=”#back-clean”], a[href=”#_back-clean”]’).forEach(function(btn) { var fallbackText = btn.getAttribute(‘data-rd-back-fallback-text’); if (fallbackText && !document.referrer) { btn.textContent = fallbackText; } }); }); document.addEventListener(‘click’, function(e) { var btn = e.target.closest(‘a[href=”#back-clean”], a[href=”#_back-clean”]’); if (!btn) { return; } e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation(); var fallbackUrl =…Continue reading

WooPayments Currency Switcher Shortcode

if ( ! function_exists( ‘rd_currency_switcher_shortcode’ ) ) { function rd_currency_switcher_shortcode( $atts ) { if ( ! function_exists( ‘wc_get_currency_switcher_markup’ ) ) { return ”; } // Attributes (defaults) $atts = shortcode_atts( array( ‘flag’ => ‘true’, ‘symbol’ => ‘true’, ‘select_border’ => ‘true’,…Continue reading

Rename WooCommerce “Coupon” terminology to “Discount”

if ( class_exists( ‘WooCommerce’ ) ) { add_filter( ‘gettext’, ‘rd_wc_generic_coupon_replacement’, 20, 3 ); add_filter( ‘ngettext’, ‘rd_wc_generic_coupon_replacement_plural’, 20, 5 ); // Also replace wording directly in notices (covers cases where text bypasses gettext later) add_filter( ‘woocommerce_add_notice’, ‘rd_wc_generic_coupon_replacement_in_notice’, 20, 1 ); add_filter(…Continue reading