wpgenie icon

start at 1001-3000 - change ticket number +1000

wpgenie | PRO | 02/08/22 08:42:52 AM UTC (Edited) | 0 ⭐ | 1013 👁️ | Never ⏰ | []
PHP |

3.84 KB

|

None

|

0 👍

/

0 👎

 
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