from zipfile import ZipFile
from pathlib import Path

# Plugin content
plugin_code = """<?php
/*
Plugin Name: Woo Topup Player ID
Description: إضافة شحن ألعاب ترسل Player ID وبيانات الطلب إلى بوت Python عند الدفع.
Version: 1.0.0
Author: ChatGPT
*/

if (!defined('ABSPATH')) exit;

define('TOPUP_SECRET_KEY', 'CHANGE_THIS_TO_LONG_RANDOM_SECRET');

add_action('woocommerce_after_order_notes', 'add_topup_fields');
function add_topup_fields($checkout) {
    echo '<div id="topup_fields"><h3>بيانات الشحن</h3>';
    woocommerce_form_field('player_id', [
        'type'        => 'text',
        'class'       => ['form-row-wide'],
        'label'       => 'Player ID',
        'required'    => true,
        'placeholder' => 'أدخل Player ID الخاص بك'
    ], $checkout->get_value('player_id'));
    echo '</div>';
}

add_action('woocommerce_checkout_update_order_meta', 'save_topup_fields');
function save_topup_fields($order_id) {
    if (!empty($_POST['player_id'])) {
        update_post_meta($order_id, 'player_id', sanitize_text_field($_POST['player_id']));
    }
}

add_action('woocommerce_payment_complete', 'send_to_python_bot');
function send_to_python_bot($order_id) {
    $order = wc_get_order($order_id);
    if (!$order) return;

    $player_id = get_post_meta($order_id, 'player_id', true);
    $items = [];
    foreach ($order->get_items() as $item) {
        $items[] = $item->get_name();
    }

    $response = wp_remote_post('http://YOUR_VPS_IP:5000/topup', [
        'body' => json_encode([
            'order_id'  => $order_id,
            'player_id' => $player_id,
            'items'     => $items
        ]),
        'headers' => [
            'Content-Type' => 'application/json',
            'X-Secret-Key' => TOPUP_SECRET_KEY
        ],
        'timeout' => 15
    ]);

    if (is_wp_error($response)) {
        error_log('Topup Bot Error: ' . $response->get_error_message());
    }
}
"""

# Paths
base_dir = Path("/mnt/data/woo-topup-player-id")
base_dir.mkdir(exist_ok=True)
plugin_file = base_dir / "woo-topup-player-id.php"
plugin_file.write_text(plugin_code, encoding="utf-8")

zip_path = "/mnt/data/woo-topup-player-id.zip"
with ZipFile(zip_path, 'w') as zipf:
    zipf.write(plugin_file, arcname="woo-topup-player-id/woo-topup-player-id.php")

zip_path
