wpgenie icon

Recheck for instant winners

wpgenie | PRO | 10/18/23 06:49:37 AM UTC | 0 ⭐ | 1470 👁️ | Never ⏰ | []
PHP |

2.7 KB

|

None

|

0 👍

/

0 👎

add_action( 'admin_head', 'custom_add_instant_wins',99);
 
function custom_add_instant_wins(){
    global $product, $wpdb, $post;
 
    $history = false;
 
 
 
    if ( empty( $_REQUEST['lottery-instant-winners-check'] ) ) {
        return;
    }
    if ( 'yes' !== get_post_meta( $post->ID, '_lottery_instant_win', true ) ){
            return;
    }
 
 
 
    $product = wc_get_product( $post->ID);
    $product_id = $post->ID;
 
    if ( $product) {
        $product_id = $post->ID;
        $wheredatefrom = '';
        $datefrom      = FALSE;
 
        $relisteddate = get_post_meta( $product_id, '_lottery_relisted', true );
 
        if($relisteddate){
            $wheredatefrom =" AND CAST(date AS DATETIME) > '$datefrom' ";
        }
 
        $history = $wpdb->get_results( 'SELECT * FROM '.$wpdb->prefix.'wc_lottery_log LEFT JOIN '.$wpdb->prefix.'wc_lottery_pn_log on '.$wpdb->prefix.'wc_lottery_log.id = '.$wpdb->prefix.'wc_lottery_pn_log.log_id WHERE '.$wpdb->prefix.'wc_lottery_log.lottery_id =' . $product_id . $wheredatefrom.' ORDER BY `date` DESC');
 
 
    }
 
    if ( $history ){
        foreach ($history as $value) {
 
            if( wc_lottery_use_answers( $product_id ) && 'yes' === get_option( 'lottery_remove_ticket_wrong_answer' , 'no' ) ){
 
                    $true_answer = false;
                    $true_answers = wc_lottery_pn_get_true_answers( $product_id );
 
                    if( $value->key == __( 'Answer', 'wc-lottery-pn' ) ){
                        $answers_ids  = array_keys( $true_answers );
                        $true_answer = in_array( $value->answer_id, $answers_ids );
                    }
 
                    if ( ! $true_answer ){
                        continue;
                    }
 
            }
 
 
            $ticket_number = apply_filters( 'ticket_number_display_html' , $value->ticket_number, $product ) ;
 
            $instant_ticket_numbers_prizes = maybe_unserialize( get_post_meta( $product_id, '_lottery_instant_ticket_numbers_prizes', true ) );
            if ( ! $instant_ticket_numbers_prizes  ){
                $instant_ticket_numbers_prizes = wc_lottery_get_lottery_instant_ticket_numbers_prizes_field( $product_id );
            }
            $instant_winning_tickets = array();
 
            if ( ! empty( $instant_ticket_numbers_prizes ) ) {
 
            foreach ( $instant_ticket_numbers_prizes as $key => $instant_winner ) {
 
 
                    if( isset( $instant_winner['ticket'] ) && $instant_winner['ticket'] == $value->ticket_number ){
 
 
                        $data = array(
                            'ticket'     => $instant_winner['ticket'],
                            'user_id'    => $value->userid,
                            'order_id'   => $value->orderid,
                            'prize'      => $instant_winner['prize'],
                            'product_id' => $product_id
                        );
                        $instant_winners = get_post_meta ( $product_id, '_lottery_instant_instant_winners');
 
                        if ( ! in_array( $data , $instant_winners ) ){
 
                            add_post_meta( $product_id, '_lottery_instant_instant_winners', $data );
                        }
 
 
                    }
                }
            }
 
 
 
        }
    }
 
}

Comments