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;
}
Comments