/*
 Theme Name:   Woodmart Child
 Description:  Woodmart Child Theme
 Author:       XTemos
 Author URI:   http://xtemos.com
 Template:     woodmart
 Version:      1.0.0
 Text Domain:  woodmart
*/
/* 1. اضافه کردن فیلدهای اختصاصی در صفحه محصول */
add_action('woocommerce_before_add_to_cart_button', 'custom_gift_card_fields');
function custom_gift_card_fields() {
    global $product;
    if ($product->get_id() == 864) { // جایگزین کردن 1234 با ID محصول گیفت کارت
        echo '<div class="gift-card-fields">';
        echo '<label>نام فرستنده (اختیاری): <input type="text" name="gift_sender" /></label>';
        echo '<label>نام گیرنده: <input type="text" name="gift_recipient" required /></label>';
        echo '<label>ایمیل گیرنده: <input type="email" name="gift_email" required /></label>';
        echo '<label>شماره تماس گیرنده: <input type="text" name="gift_phone" required /></label>';
        echo '</div>';
    }
}

/* 2. ذخیره اطلاعات در سبد خرید */
add_filter('woocommerce_add_cart_item_data', 'save_gift_card_fields', 10, 2);
function save_gift_card_fields($cart_item_data, $product_id) {
    if (isset($_POST['gift_recipient'])) {
        $cart_item_data['gift_sender'] = sanitize_text_field($_POST['gift_sender']);
        $cart_item_data['gift_recipient'] = sanitize_text_field($_POST['gift_recipient']);
        $cart_item_data['gift_email'] = sanitize_email($_POST['gift_email']);
        $cart_item_data['gift_phone'] = sanitize_text_field($_POST['gift_phone']);
    }
    return $cart_item_data;
}

/* 3. نمایش اطلاعات در بخش سفارش */
add_action('woocommerce_checkout_create_order_line_item', 'save_gift_card_order_meta', 10, 4);
function save_gift_card_order_meta($item, $cart_item_key, $values, $order) {
    if (isset($values['gift_recipient'])) {
        $item->add_meta_data('نام فرستنده', $values['gift_sender']);
        $item->add_meta_data('نام گیرنده', $values['gift_recipient']);
        $item->add_meta_data('ایمیل گیرنده', $values['gift_email']);
        $item->add_meta_data('شماره تماس گیرنده', $values['gift_phone']);
    }
}

/* 4. ایجاد کد تخفیف یونیک و ارسال به گیرنده */
add_action('woocommerce_thankyou', 'generate_gift_card_coupon');
function generate_gift_card_coupon($order_id) {
    if (!$order_id) return;
    $order = wc_get_order($order_id);
    foreach ($order->get_items() as $item_id => $item) {
        if ($item->get_name() == 'گیفت کارت') { // نام محصول گیفت کارت
            $recipient_email = $item->get_meta('ایمیل گیرنده');
            $discount_code = 'GIFTCARD-' . wp_generate_password(10, false);
            $amount = $order->get_total();
            
            $coupon = array(
                'post_title'   => $discount_code,
                'post_content' => 'کد تخفیف گیفت کارت',
                'post_status'  => 'publish',
                'post_author'  => 1,
                'post_type'    => 'shop_coupon',
            );
            
            $new_coupon_id = wp_insert_post($coupon);
            update_post_meta($new_coupon_id, 'discount_type', 'fixed_cart');
            update_post_meta($new_coupon_id, 'coupon_amount', $amount);
            update_post_meta($new_coupon_id, 'individual_use', 'yes');
            update_post_meta($new_coupon_id, 'usage_limit', '1');
            update_post_meta($new_coupon_id, 'expiry_date', date('Y-m-d', strtotime('+1 year')));
            update_post_meta($new_coupon_id, 'email_restrictions', array($recipient_email));
            
            $email_subject = 'گیفت کارت شما آماده است!';
            $email_message = 'کد تخفیف شما: ' . $discount_code . "\nبا این کد می‌توانید از فروشگاه خرید کنید.";
            wp_mail($recipient_email, $email_subject, $email_message);
        }
    }
}
