/** * Shane Cakes – Complete WooCommerce Account Dashboard (With Animated Delivery Bike Tracking) */ // 1. Keep default menu structure intact add_filter( ‘woocommerce_account_menu_items’, ‘shane_custom_my_account_menu_order’ ); function shane_custom_my_account_menu_order( $menu_links ) { return $menu_links; } // 2. Hook directly…Continue reading
function rd_aw_register_delete_custom_field_actions() { if ( ! class_exists( ‘\AutomateWoo\Action’ ) ) { return; } if ( ! class_exists( ‘RD_AW_Action_Delete_Custom_Field_Base’, false ) ) { abstract class RD_AW_Action_Delete_Custom_Field_Base extends \AutomateWoo\Action { public function load_fields() { $meta_key = ( new \AutomateWoo\Fields\Text() ) ->set_name( ‘meta_key’…Continue reading
if ( ! defined( ‘ABSPATH’ ) ) { return; } if ( ! class_exists( ‘WooCommerce’ ) ) { return; } if ( ! function_exists( ‘wcs_get_subscription’ ) ) { return; } function pm_exclude_blacklist_suspect_meta_from_subscription_data( $data ) { if ( ! is_array( $data…Continue reading
function rd_refund_button_has_transaction_id( $order ) { return $order instanceof WC_Order && ” !== trim( (string) $order->get_transaction_id() ); } function rd_refund_button_should_be_hidden( $order ) { return $order instanceof WC_Order && ! rd_refund_button_has_transaction_id( $order ) && $order->has_status( array( ‘new’, ‘auto-draft’, ‘draft’, ‘checkout-draft’, ‘pending’, ‘failed’,…Continue reading
function rd_add_generated_gift_coupon_order_note( $generated_coupon ) { if ( ! is_array( $generated_coupon ) || empty( $generated_coupon[‘new_coupon_id’] ) ) { return; } $coupon = new WC_Coupon( absint( $generated_coupon[‘new_coupon_id’] ) ); if ( ! $coupon->get_id() ) { return; } $order_id = absint( $coupon->get_meta( ‘generated_from_order_id’,…Continue reading
function rd_yoohw_clone_order_is_available( $order ) { if ( ! function_exists( ‘wc_get_order’ ) || ! class_exists( ‘WC_Order’ ) || ! $order instanceof WC_Order || ! has_action( ‘woocommerce_order_action_yoos_duplicate_order’ ) || ! current_user_can( ‘administrator’ ) || ! current_user_can( ‘edit_shop_order’, $order->get_id() ) ) { return…Continue reading
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
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
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