add_action( 'template_redirect', 'custom_use_alphabet', 100 ); add_action( 'admin_init', 'custom_use_alphabet', 100 ); add_action( 'woocommerce_product_options_lottery', 'custom_use_alphabet', 100 ); add_action( 'export_lottery_history_with_extra_info', 'custom_use_alphabet', 100 ); function custom_use_alphabet( $post_id = false ) { global $wc_lottery_pn; remove_filter( 'woocommerce_get_item_data', array( $wc_lottery_pn->plugin_public, 'change_cart_ticket_number_to_alphabet'), 10 ); remove_filter( 'woocommerce_display_item_meta', array( $wc_lottery_pn->plugin_public, 'change_order_ticket_number_to_alphabet'), 90 ); remove_filter( 'woocommerce_order_item_display_meta_value', array( $wc_lottery_pn->plugin_public, 'woocommerce_order_item_display_meta_value_aplhabet'), 90 ); add_filter( 'woocommerce_get_item_data', 'custom_change_cart_ticket_number_to_alphabet', 10, 2 ); add_filter( 'woocommerce_display_item_meta', 'custom_change_order_ticket_number_to_alphabet', 90, 3 ); add_filter( 'woocommerce_order_item_display_meta_value', 'custom_woocommerce_order_item_display_meta_value_aplhabet', 90, 3 ); if ( is_product() || is_admin() ) { $post_id = !$post_id ? get_the_ID() : $post_id; if ( 'yes' === get_post_meta( $post_id , '_lottery_pick_number_alphabet', true ) ) { remove_filter( 'ticket_number_display_html', array( $wc_lottery_pn->plugin_public, 'change_ticket_numbers_to_alphabet'), 10 ); remove_filter( 'ticket_number_tab_display_html', array( $wc_lottery_pn->plugin_public, 'change_ticket_tab_to_alphabet'), 10 ); add_filter( 'ticket_number_display_html', 'custom_change_ticket_numbers_to_alphabet', 10, 2 ); add_filter( 'ticket_number_tab_display_html', 'custom_change_ticket_numbers_to_alphabet', 10, 2 ); } } } function custom_change_ticket_numbers_to_alphabet( $ticket_number, $product ) { $ticket_number = intval($ticket_number) + 1000; return $ticket_number ; } function custom_change_cart_ticket_number_to_alphabet( $item_data, $cart_item ) { // Format item data ready to display. foreach ( $item_data as $key => $data ) { if ( isset( $data['key'] ) && 'Ticket number' === $data['key'] ) { $product = wc_get_product( $cart_item['product_id'] ); if ( 'yes' === get_post_meta( $cart_item['product_id'] , '_lottery_pick_number_alphabet', true ) ) { $item_data[ $key ]['display'] = custom_change_ticket_numbers_to_alphabet($data['value'], $product ); } } } return $item_data; } function custom_change_order_ticket_number_to_alphabet( $html, $item, $args ) { $strings = false; $product_id = $item->get_product_id(); $product = wc_get_product( $product_id ); if ( ! $product || 'yes' !== get_post_meta( $product_id , '_lottery_pick_number_alphabet', true ) ) { return $html; } foreach ( $item->get_formatted_meta_data() as $meta_id => $meta ) { if ( 'Ticket number' === $meta->key ) { $value = $args['autop'] ? wp_kses_post( $meta->display_value ) : wp_kses_post( make_clickable( custom_change_ticket_numbers_to_alphabet(intval( $meta->value ), $product )) ); $strings[] = $args['label_before'] . wp_kses_post( $meta->display_key ) . $args['label_after'] . $value; } } if ( $strings ) { $html = $args['before'] . implode( $args['separator'], $strings ) . $args['after']; } return $html; } function custom_woocommerce_order_item_display_meta_value_aplhabet( $meta_value, $meta, $item ){ if ( is_a($item, 'WC_Order_Item_Product') ) { $product_id = $item->get_product_id(); $product = wc_get_product( $product_id ); if ( ! $product || 'yes' !== get_post_meta( $product_id , '_lottery_pick_number_alphabet', true ) ) { return $meta_value; } if ( 'Ticket number' === $meta->key ) { $meta_value = custom_change_ticket_numbers_to_alphabet(intval( $meta_value ), $product ); } } return $meta_value; }