function woocommerce_apply_giftcard($giftcard_code)
{
    global $wpdb;
    if (!empty($_POST['giftcard_code'])) {
        $giftcard_number = sanitize_text_field($_POST['giftcard_code']);
        if (!isset(WC()->session->giftcard_post)) {
            $giftcard_id = wpr_get_giftcard_by_code($giftcard_number);
            if ($giftcard_id) {
                $current_date = date("Y-m-d");
                $cardExperation = wpr_get_giftcard_expiration($giftcard_id);
                if (strtotime($current_date) <= strtotime($cardExperation) || strtotime($cardExperation) == '') {
                    if (wpr_get_giftcard_balance($giftcard_id) > 0) {
                        WC()->session->giftcard_post = $giftcard_id;
                        wc_add_notice(__('Gift card applied successfully.', 'rpgiftcards'), 'success');
                    } else {
                        wc_add_notice(__('Gift Card does not have a balance!', 'rpgiftcards'), 'error');
                    }
                } else {
                    wc_add_notice(__('Gift Card has expired!', 'rpgiftcards'), 'error');
                    // Giftcard Entered has expired
                }
            } else {
                wc_add_notice(__('Gift Card does not exist!', 'rpgiftcards'), 'error');
                // Giftcard Entered does not exist
            }
        } else {
            wc_add_notice(__('Gift Card already in the cart!', 'rpgiftcards'), 'error');
            //  You already have a gift card in the cart
        }
        wc_print_notices();
    }
}
function wpr_decrease_giftcard($atts)
{
    global $wpdb, $woocommerce;
    if (current_user_can('manage_options') || current_user_can('manage_woocommerce')) {
        if (isset($_POST['giftcard_code'])) {
            $giftCardNumber = sanitize_text_field($_POST['giftcard_code']);
        }
        if (isset($_POST['giftcard_debt'])) {
            $giftCardDebt = sanitize_text_field($_POST['giftcard_debt']);
        }
        $return = '';
        $return .= '<form class="check_giftcard_balance" method="post">';
        $return .= '<p class="form-row form-row-first">';
        $return .= '<input type="text" name="giftcard_code" class="input-text" placeholder="' . __('Gift card', 'rpgiftcards') . '" id="giftcard_code" value="" />';
        $return .= '</p>';
        $return .= '<p class="form-row form-row-first">';
        $return .= '<input type="text" name="giftcard_debt" class="input-text" placeholder="' . __('Amount Used', 'rpgiftcards') . '" id="giftcard_debt" value="" />';
        $return .= '</p>';
        $return .= '<p class="form-row form-row-last">';
        $return .= '<input type="submit" class="button" name="check_giftcard" value="' . __('Submit', 'rpgiftcards') . '" />';
        $return .= '</p>';
        $return .= '<div class="clear"></div>';
        $return .= '</form>';
        $return .= '<div id="theBalance"></div>';
        if (isset($_POST['giftcard_debt'])) {
            $giftcard_found = wpr_get_giftcard_by_code($giftCardNumber);
            if ($giftcard_found) {
                $current_date = date("Y-m-d");
                $giftcard = wpr_get_giftcard_info($giftcard_found);
                $cardExperation = $giftcard['expiry_date'];
                // Valid Gift Card Entered
                if (strtotime($current_date) <= strtotime($cardExperation) || strtotime($cardExperation) == '') {
                    $oldBalance = $giftcard['balance'];
                    $GiftcardBalance = (double) $oldBalance;
                    if ($GiftcardBalance >= $giftCardDebt) {
                        $giftcard['balance'] = (double) $GiftcardBalance - (double) $giftCardDebt;
                        $giftcardRemaining = 0;
                    } else {
                        $giftcard['balance'] = 0;
                        $giftcardRemaining = (double) $giftCardDebt - (double) $GiftcardBalance;
                        $return .= '<h3>' . __('Amount Remaining to Pay', 'rpgiftcards') . ': ' . woocommerce_price($giftcardRemaining) . '</h3>';
                    }
                    update_post_meta($giftcard_found, '_wpr_giftcard', $giftcard);
                    $return .= '<h3>' . __('Remaining Balance on Card', 'rpgiftcards') . ': ' . woocommerce_price($giftcard['balance']) . '</h3>';
                } else {
                    $return .= '<h3>' . __('Gift Card Has Expired', 'rpgiftcards') . '</h3>';
                }
            } else {
                $return .= '<h3>' . __('Gift Card Does Not Exist', 'rpgiftcards') . '</h3>';
            }
        }
        return apply_filters('wpr_check_giftcard', $return);
    }
}
 public function rpgc_info_meta_box($post)
 {
     global $wpdb;
     $data = get_post_meta($post->ID);
     $orderCardNumber = wpr_get_order_card_number($post->ID);
     $orderCardBalance = wpr_get_order_card_balance($post->ID);
     $orderCardPayment = wpr_get_order_card_payment($post->ID);
     $isAlreadyRefunded = wpr_get_order_refund_status($post->ID);
     echo '<div id="giftcard_regenerate" class="panel woocommerce_options_panel">';
     echo '    <div class="options_group">';
     echo '<ul>';
     if (isset($orderCardNumber)) {
         echo '<li>' . __('Gift Card #:', 'rpgiftcards') . ' ' . esc_attr($orderCardNumber) . '</li>';
     }
     if (isset($orderCardPayment)) {
         echo '<li>' . __('Payment:', 'rpgiftcards') . ' ' . woocommerce_price($orderCardPayment) . '</li>';
     }
     if (isset($orderCardBalance)) {
         echo '<li>' . __('Balance remaining:', 'rpgiftcards') . ' ' . woocommerce_price($orderCardBalance) . '</li>';
     }
     echo '</ul>';
     $giftcard_found = wpr_get_giftcard_by_code($orderCardNumber);
     if ($giftcard_found) {
         echo '<div>';
         $link = 'post.php?post=' . $giftcard_found . '&action=edit';
         echo '<a href="' . admin_url($link) . '">' . __('Access Gift Card', 'rpgiftcards') . '</a>';
         if (!empty($isAlreadyRefunded)) {
             echo '<br /><span style="color: #dd0000;">' . __('Gift card refunded ', 'rpgiftcards') . ' ' . woocommerce_price($orderCardPayment) . '</span>';
         }
         echo '</div>';
     }
     echo '    </div>';
     echo '</div>';
 }