Show Order Numbers in YoOhw Duplicate Notes

function rd_get_yoohw_duplicate_note_reference_order_id( $note_content, $note_template ) { $pattern = ‘/^’ . str_replace( ‘%s’, ‘([0-9]+)’, preg_quote( $note_template, ‘/’ ) ) . ‘$/’; if ( ! preg_match( $pattern, $note_content, $matches ) ) { return 0; } return absint( $matches[1] ); } function rd_show_order_numbers_in_yoohw_duplicate_notes(…Continue reading

Mark WooCommerce Order Clones

function rd_mark_yoohw_order_duplicate_on_redirect( $location ) { if ( ! function_exists( ‘wc_get_order’ ) || ! class_exists( ‘WC_Order’ ) || ! has_action( ‘woocommerce_order_action_yoos_duplicate_order’ ) ) { return $location; } $redirect_parts = wp_parse_url( $location ); if ( empty( $redirect_parts[‘query’] ) ) { return $location;…Continue reading

Reset Payment Method on YoOhw Order Duplicates

function rd_reset_payment_method_on_yoohw_order_duplicate_redirect( $location ) { if ( ! function_exists( ‘wc_get_order’ ) || ! class_exists( ‘WC_Order’ ) || ! has_action( ‘woocommerce_order_action_yoos_duplicate_order’ ) ) { return $location; } $redirect_parts = wp_parse_url( $location ); if ( empty( $redirect_parts[‘query’] ) ) { return $location;…Continue reading

Enable Editing of Draft & Processing WooCommerce Orders

add_filter( ‘wc_order_is_editable’, function ( $is_editable, $order ) { if ( ! $order instanceof WC_Order ) { return $is_editable; } if ( ! current_user_can( ‘edit_shop_order’, $order->get_id() ) ) { return $is_editable; } return $is_editable || in_array( $order->get_status(), array( ‘checkout-draft’, ‘processing’ ),…Continue reading

[Hunters Hill Trust] House Count Dynamic Data Shortcode

function rd_greenbook_house_count_shortcode() { $counts = wp_count_posts( ‘wpsl_stores’ ); return isset( $counts->publish ) ? esc_html( number_format_i18n( (int) $counts->publish ) ) : ‘0’; } add_shortcode( ‘rd_greenbook_house_count’, ‘rd_greenbook_house_count_shortcode’ );Continue reading

[DEBUG] Action Scheduler Source Diagnostic

add_action( ‘admin_notices’, ‘rd_report_action_scheduler_source’ ); function rd_report_action_scheduler_source() { if ( ! current_user_can( ‘manage_options’ ) ) { return; } $versions_class = ‘ActionScheduler_Versions’; $system_info_class = ‘ActionScheduler_SystemInformation’; $action_scheduler_class = ‘ActionScheduler’; echo ‘ ‘; if ( ! class_exists( $versions_class ) && ! class_exists( $action_scheduler_class )…Continue reading

[NOT IN USE – Zorem Customer Email Verification] Hide Billing Fields After Email Until Verified

(function () { const fieldSelectors = [ ‘#billing_phone_field’, ‘#billing_company_field’, ‘#billing_address_1_field’, ‘#billing_address_2_field’, ‘#billing_city_field’, ‘#billing_postcode_field’, ‘#billing_state_field’, ‘#billing_country_field’ ]; const klaviyoSelectors = [ ‘#kl_newsletter_checkbox_field’, ‘#kl_sms_consent_checkbox_field’ ]; function setVisibility(selectors, show) { selectors.forEach(selector => { const el = document.querySelector(selector); if (el) { el.style.display = show…Continue reading

[NOT IN USE – Zorem Customer Email Verification] Change Verification Code Input to Number Format

document.addEventListener(‘DOMContentLoaded’, function () { const observer = new MutationObserver(function () { const codeInput = document.querySelector(‘input[name=”cev_billing_email”]’); if (codeInput && !codeInput.hasAttribute(‘inputmode’)) { codeInput.setAttribute(‘inputmode’, ‘numeric’); } }); observer.observe(document.body, { childList: true, subtree: true }); });Continue reading