<?php
/**
 * Theme functions and definitions
 *
 * @package Theme_An_Phat
 */

if ( ! defined( 'THEME_ANPHAT_VERSION' ) ) {
    define( 'THEME_ANPHAT_VERSION', '1.0.0' );
}

/**
 * Sets up theme defaults and registers support for various WordPress features.
 */
function theme_anphat_setup() {
    /*
     * Make theme available for translation.
     * Translations can be filed in the /languages/ directory.
     */
    load_theme_textdomain( 'theme-anphat', get_template_directory() . '/languages' );

    // Add default posts and comments RSS feed links to head.
    add_theme_support( 'automatic-feed-links' );

    /*
     * Let WordPress manage the document title.
     * By adding theme support, we declare that this theme does not use a
     * hard-coded <title> tag in the document head, and expect WordPress to
     * provide it for us.
     */
    add_theme_support( 'title-tag' );

    /*
     * Enable support for Post Thumbnails on posts and pages.
     */
    add_theme_support( 'post-thumbnails' );

    // This theme uses wp_nav_menu() in two locations.
    register_nav_menus(
        array(
            'menu-primary' => esc_html__( 'Primary Navigation Menu', 'theme-anphat' ),
            'menu-footer'  => esc_html__( 'Footer Quick Links Menu', 'theme-anphat' ),
        )
    );

    /*
     * Switch default core markup for search form, comment form, and comments
     * to output valid HTML5.
     */
    add_theme_support(
        'html5',
        array(
            'search-form',
            'comment-form',
            'comment-list',
            'gallery',
            'caption',
            'style',
            'script',
        )
    );

    // Add theme support for Selective Refresh for widgets.
    add_theme_support( 'customize-selective-refresh-widgets' );

    // Add support for core custom logo.
    add_theme_support(
        'custom-logo',
        array(
            'height'      => 80,
            'width'       => 250,
            'flex-width'  => true,
            'flex-height' => true,
        )
    );

    // Enable WooCommerce template features for the theme.
    add_theme_support( 'woocommerce' );
}
add_action( 'after_setup_theme', 'theme_anphat_setup' );

/**
 * Enqueue scripts and styles.
 */
function theme_anphat_scripts() {
    // Enqueue Google Fonts
    wp_enqueue_style( 'google-fonts', 'https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&display=swap', array(), null );

    // Enqueue FontAwesome for icons
    wp_enqueue_style( 'font-awesome', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css', array(), '6.4.0' );

    // Enqueue Swiper CSS and JS
    wp_enqueue_style( 'swiper-style', 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css', array(), '11.0.0' );
    wp_enqueue_script( 'swiper-script', 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js', array(), '11.0.0', true );

    // Enqueue Main Theme Stylesheet
    wp_enqueue_style( 'theme-anphat-style', get_stylesheet_uri(), array(), filemtime( get_stylesheet_directory() . '/style.css' ) );
    wp_enqueue_style( 'theme-anphat-main', get_template_directory_uri() . '/assets/css/main.css', array( 'theme-anphat-style' ), filemtime( get_template_directory() . '/assets/css/main.css' ) );

    // Enqueue Custom JavaScript
    wp_enqueue_script( 'theme-anphat-main-js', get_template_directory_uri() . '/assets/js/main.js', array(), filemtime( get_template_directory() . '/assets/js/main.js' ), true );

    // Localize script for AJAX usage
    wp_localize_script( 'theme-anphat-main-js', 'anphat_ajax', array(
        'ajax_url' => admin_url( 'admin-ajax.php' ),
        'nonce'    => wp_create_nonce( 'anphat_ajax_nonce' )
    ) );
}
add_action( 'wp_enqueue_scripts', 'theme_anphat_scripts' );

/**
 * Register Custom Post Types
 */
function theme_anphat_register_cpts() {
    // 1. CPT Sản phẩm
    $labels_sp = array(
        'name'               => __( 'Sản phẩm', 'theme-anphat' ),
        'singular_name'      => __( 'Sản phẩm', 'theme-anphat' ),
        'menu_name'          => __( 'Sản phẩm', 'theme-anphat' ),
        'add_new'            => __( 'Thêm mới', 'theme-anphat' ),
        'add_new_item'       => __( 'Thêm sản phẩm mới', 'theme-anphat' ),
        'edit_item'          => __( 'Sửa sản phẩm', 'theme-anphat' ),
        'new_item'           => __( 'Sản phẩm mới', 'theme-anphat' ),
        'view_item'          => __( 'Xem sản phẩm', 'theme-anphat' ),
        'search_items'       => __( 'Tìm kiếm sản phẩm', 'theme-anphat' ),
        'not_found'          => __( 'Không tìm thấy sản phẩm nào', 'theme-anphat' ),
    );
    $args_sp = array(
        'labels'             => $labels_sp,
        'public'             => true,
        'has_archive'        => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array( 'slug' => 'san-pham-item' ),
        'capability_type'    => 'post',
        'hierarchical'       => false,
        'menu_icon'          => 'dashicons-pressthis',
        'supports'           => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
    );
    register_post_type( 'san_pham', $args_sp );

    // Đăng ký Taxonomy cho Sản phẩm (Danh mục sản phẩm)
    register_taxonomy( 'danh_muc_san_pham', 'san_pham', array(
        'labels' => array(
            'name'              => __( 'Danh mục sản phẩm', 'theme-anphat' ),
            'singular_name'     => __( 'Danh mục sản phẩm', 'theme-anphat' ),
            'search_items'      => __( 'Tìm danh mục', 'theme-anphat' ),
            'all_items'         => __( 'Tất cả danh mục', 'theme-anphat' ),
            'parent_item'       => __( 'Danh mục cha', 'theme-anphat' ),
            'parent_item_colon' => __( 'Danh mục cha:', 'theme-anphat' ),
            'edit_item'         => __( 'Sửa danh mục', 'theme-anphat' ),
            'update_item'       => __( 'Cập nhật danh mục', 'theme-anphat' ),
            'add_new_item'      => __( 'Thêm danh mục mới', 'theme-anphat' ),
            'new_item_name'     => __( 'Tên danh mục mới', 'theme-anphat' ),
            'menu_name'         => __( 'Danh mục sản phẩm', 'theme-anphat' ),
        ),
        'hierarchical'      => true,
        'show_ui'           => true,
        'show_admin_column' => true,
        'query_var'         => true,
        'rewrite'           => array( 'slug' => 'danh-muc-san-pham' ),
    ) );

    // 2. CPT Đối tác
    $labels_dt = array(
        'name'               => __( 'Đối tác', 'theme-anphat' ),
        'singular_name'      => __( 'Đối tác', 'theme-anphat' ),
        'menu_name'          => __( 'Đối tác', 'theme-anphat' ),
        'add_new'            => __( 'Thêm mới', 'theme-anphat' ),
        'add_new_item'       => __( 'Thêm đối tác mới', 'theme-anphat' ),
        'edit_item'          => __( 'Sửa đối tác', 'theme-anphat' ),
        'new_item'           => __( 'Đối tác mới', 'theme-anphat' ),
        'view_item'          => __( 'Xem đối tác', 'theme-anphat' ),
        'search_items'       => __( 'Tìm kiếm đối tác', 'theme-anphat' ),
    );
    $args_dt = array(
        'labels'             => $labels_dt,
        'public'             => true,
        'has_archive'        => false,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'menu_icon'          => 'dashicons-groups',
        'supports'           => array( 'title', 'thumbnail' ),
    );
    register_post_type( 'doi_tac', $args_dt );

    // Đăng ký Phân loại đối tác: Trong nước / Quốc tế
    register_taxonomy( 'loai_doi_tac', 'doi_tac', array(
        'labels' => array(
            'name'              => __( 'Loại đối tác', 'theme-anphat' ),
            'singular_name'     => __( 'Loại đối tác', 'theme-anphat' ),
            'menu_name'         => __( 'Loại đối tác', 'theme-anphat' ),
        ),
        'hierarchical'      => true,
        'show_ui'           => true,
        'show_admin_column' => true,
    ) );

    // 3. CPT Tuyển dụng
    $labels_td = array(
        'name'               => __( 'Tuyển dụng', 'theme-anphat' ),
        'singular_name'      => __( 'Vị trí tuyển dụng', 'theme-anphat' ),
        'menu_name'          => __( 'Tuyển dụng', 'theme-anphat' ),
        'add_new'            => __( 'Thêm vị trí mới', 'theme-anphat' ),
        'add_new_item'       => __( 'Thêm vị trí tuyển dụng mới', 'theme-anphat' ),
        'edit_item'          => __( 'Sửa vị trí', 'theme-anphat' ),
        'search_items'       => __( 'Tìm vị trí tuyển dụng', 'theme-anphat' ),
    );
    $args_td = array(
        'labels'             => $labels_td,
        'public'             => true,
        'has_archive'        => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'menu_icon'          => 'dashicons-welcome-learn-more',
        'supports'           => array( 'title', 'editor', 'excerpt' ),
    );
    register_post_type( 'tuyen_dung', $args_td );

    // 4. CPT Lưu trữ Hồ sơ liên hệ (Private)
    register_post_type( 'lh_submission', array(
        'labels' => array(
            'name'               => __( 'Hộp thư Liên hệ', 'theme-anphat' ),
            'singular_name'      => __( 'Thư Liên hệ', 'theme-anphat' ),
            'menu_name'          => __( 'Thư Liên hệ', 'theme-anphat' ),
        ),
        'public'             => false,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'menu_icon'          => 'dashicons-email-alt2',
        'supports'           => array( 'title', 'editor' ),
    ) );

    // 5. CPT Lưu trữ Báo cáo Cảnh giác dược (Private)
    register_post_type( 'adr_submission', array(
        'labels' => array(
            'name'               => __( 'Báo cáo ADR', 'theme-anphat' ),
            'singular_name'      => __( 'Báo cáo ADR', 'theme-anphat' ),
            'menu_name'          => __( 'Báo cáo ADR (Cảnh giác dược)', 'theme-anphat' ),
        ),
        'public'             => false,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'menu_icon'          => 'dashicons-testimonial',
        'supports'           => array( 'title', 'editor' ),
    ) );

    // 6. CPT Lưu trữ Hồ sơ Tuyển dụng (Private)
    register_post_type( 'cv_submission', array(
        'labels' => array(
            'name'               => __( 'Hồ sơ Ứng tuyển', 'theme-anphat' ),
            'singular_name'      => __( 'Hồ sơ Ứng tuyển', 'theme-anphat' ),
            'menu_name'          => __( 'Hồ sơ Ứng tuyển', 'theme-anphat' ),
        ),
        'public'             => false,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'menu_icon'          => 'dashicons-id',
        'supports'           => array( 'title', 'editor' ),
    ) );
}
add_action( 'init', 'theme_anphat_register_cpts' );


/**
 * AJAX Handler: Gửi form Liên Hệ
 */
function ajax_submit_contact_form() {
    check_ajax_referer( 'anphat_ajax_nonce', 'nonce' );

    $name    = isset( $_POST['fullname'] ) ? sanitize_text_field( $_POST['fullname'] ) : '';
    $email   = isset( $_POST['email'] ) ? sanitize_email( $_POST['email'] ) : '';
    $phone   = isset( $_POST['phone'] ) ? sanitize_text_field( $_POST['phone'] ) : '';
    $subject = isset( $_POST['subject'] ) ? sanitize_text_field( $_POST['subject'] ) : '';
    $message = isset( $_POST['message'] ) ? sanitize_textarea_field( $_POST['message'] ) : '';

    if ( empty( $name ) || empty( $email ) || empty( $message ) ) {
        wp_send_json_error( array( 'message' => __( 'Vui lòng nhập đầy đủ các trường bắt buộc.', 'theme-anphat' ) ) );
    }

    $post_content = "Họ tên: {$name}\nEmail: {$email}\nSố điện thoại: {$phone}\nTiêu đề: {$subject}\n\nNội dung thông điệp:\n{$message}";

    $post_data = array(
        'post_title'   => sanitize_text_field( "Liên hệ từ: " . $name . " - " . date('Y-m-d H:i:s') ),
        'post_content' => $post_content,
        'post_status'  => 'publish',
        'post_type'    => 'lh_submission'
    );

    $post_id = wp_insert_post( $post_data );

    if ( $post_id ) {
        // Lưu meta fields
        update_post_meta( $post_id, 'sender_name', $name );
        update_post_meta( $post_id, 'sender_email', $email );
        update_post_meta( $post_id, 'sender_phone', $phone );
        update_post_meta( $post_id, 'sender_subject', $subject );

        wp_send_json_success( array( 'message' => __( 'Gửi thông tin liên hệ thành công. An Phát Pharma sẽ liên hệ với bạn trong thời gian sớm nhất!', 'theme-anphat' ) ) );
    } else {
        wp_send_json_error( array( 'message' => __( 'Không thể lưu thông tin. Vui lòng thử lại sau.', 'theme-anphat' ) ) );
    }
}
add_action( 'wp_ajax_submit_contact_form', 'ajax_submit_contact_form' );
add_action( 'wp_ajax_nopriv_submit_contact_form', 'ajax_submit_contact_form' );


/**
 * AJAX Handler: Gửi báo cáo Cảnh Giác Dược (ADR)
 */
function ajax_submit_adr_report() {
    check_ajax_referer( 'anphat_ajax_nonce', 'nonce' );

    // 1. Thông tin người báo cáo
    $reporter_name  = isset( $_POST['reporter_name'] ) ? sanitize_text_field( $_POST['reporter_name'] ) : '';
    $reporter_phone = isset( $_POST['reporter_phone'] ) ? sanitize_text_field( $_POST['reporter_phone'] ) : '';
    $reporter_email = isset( $_POST['reporter_email'] ) ? sanitize_email( $_POST['reporter_email'] ) : '';
    $reporter_job   = isset( $_POST['reporter_job'] ) ? sanitize_text_field( $_POST['reporter_job'] ) : '';

    // 2. Thông tin bệnh nhân
    $patient_name   = isset( $_POST['patient_name'] ) ? sanitize_text_field( $_POST['patient_name'] ) : '';
    $patient_dob    = isset( $_POST['patient_dob'] ) ? sanitize_text_field( $_POST['patient_dob'] ) : '';
    $patient_gender = isset( $_POST['patient_gender'] ) ? sanitize_text_field( $_POST['patient_gender'] ) : '';

    // 3. Thông tin phản ứng phụ
    $adr_date       = isset( $_POST['adr_date'] ) ? sanitize_text_field( $_POST['adr_date'] ) : '';
    $adr_desc       = isset( $_POST['adr_desc'] ) ? sanitize_textarea_field( $_POST['adr_desc'] ) : '';

    // 4. Thông tin thuốc
    $drug_name      = isset( $_POST['drug_name'] ) ? sanitize_text_field( $_POST['drug_name'] ) : '';
    $drug_lot       = isset( $_POST['drug_lot'] ) ? sanitize_text_field( $_POST['drug_lot'] ) : '';
    $drug_usage     = isset( $_POST['drug_usage'] ) ? sanitize_text_field( $_POST['drug_usage'] ) : '';

    if ( empty( $reporter_name ) || empty( $reporter_phone ) || empty( $patient_name ) || empty( $adr_desc ) || empty( $drug_name ) ) {
        wp_send_json_error( array( 'message' => __( 'Vui lòng hoàn thành các trường thông tin bắt buộc (*).', 'theme-anphat' ) ) );
    }

    $post_content = "=== THÔNG TIN NGƯỜI BÁO CÁO ===\n" .
                    "Họ tên: {$reporter_name}\nSĐT: {$reporter_phone}\nEmail: {$reporter_email}\nNghề nghiệp: {$reporter_job}\n\n" .
                    "=== THÔNG TIN BỆNH NHÂN ===\n" .
                    "Họ tên/Mã số viết tắt: {$patient_name}\nNgày sinh: {$patient_dob}\nGiới tính: {$patient_gender}\n\n" .
                    "=== THÔNG TIN PHẢN ỨNG PHỤ ===\n" .
                    "Ngày xuất hiện: {$adr_date}\nMô tả phản ứng: {$adr_desc}\n\n" .
                    "=== THÔNG TIN THUỐC NGHI NGỜ ===\n" .
                    "Tên thuốc: {$drug_name}\nSố lô: {$drug_lot}\nLiều dùng/Đường dùng: {$drug_usage}";

    $post_data = array(
        'post_title'   => sanitize_text_field( "Báo cáo ADR: " . $patient_name . " - " . date('Y-m-d H:i:s') ),
        'post_content' => $post_content,
        'post_status'  => 'publish',
        'post_type'    => 'adr_submission'
    );

    $post_id = wp_insert_post( $post_data );

    if ( $post_id ) {
        wp_send_json_success( array( 'message' => __( 'Báo cáo ADR đã được ghi nhận bảo mật. Ban Cảnh giác dược An Phát Pharma xin trân trọng cảm ơn thông tin quý báu của quý khách.', 'theme-anphat' ) ) );
    } else {
        wp_send_json_error( array( 'message' => __( 'Đã có lỗi xảy ra khi lưu báo cáo. Vui lòng gửi lại hoặc liên hệ hotline.', 'theme-anphat' ) ) );
    }
}
add_action( 'wp_ajax_submit_adr_report', 'ajax_submit_adr_report' );
add_action( 'wp_ajax_nopriv_submit_adr_report', 'ajax_submit_adr_report' );


/**
 * AJAX Handler: Nộp hồ sơ tuyển dụng (CV Upload)
 */
function ajax_submit_job_application() {
    check_ajax_referer( 'anphat_ajax_nonce', 'nonce' );

    $name    = isset( $_POST['fullname'] ) ? sanitize_text_field( $_POST['fullname'] ) : '';
    $email   = isset( $_POST['email'] ) ? sanitize_email( $_POST['email'] ) : '';
    $phone   = isset( $_POST['phone'] ) ? sanitize_text_field( $_POST['phone'] ) : '';
    $job_id  = isset( $_POST['job_id'] ) ? intval( $_POST['job_id'] ) : 0;
    $message = isset( $_POST['message'] ) ? sanitize_textarea_field( $_POST['message'] ) : '';

    if ( empty( $name ) || empty( $email ) || empty( $phone ) ) {
        wp_send_json_error( array( 'message' => __( 'Vui lòng điền đầy đủ họ tên, email và số điện thoại.', 'theme-anphat' ) ) );
    }

    $job_title = "Vị trí không xác định";
    if ( $job_id > 0 ) {
        $job_post = get_post( $job_id );
        if ( $job_post ) {
            $job_title = $job_post->post_title;
        }
    }

    // Xử lý upload file CV PDF
    $cv_url = '';
    if ( ! empty( $_FILES['cv_file']['name'] ) ) {
        require_once( ABSPATH . 'wp-admin/includes/image.php' );
        require_once( ABSPATH . 'wp-admin/includes/file.php' );
        require_once( ABSPATH . 'wp-admin/includes/media.php' );

        // Kiểm tra loại file (chỉ cho phép pdf, doc, docx, kích thước tối đa 5MB)
        $file_name = $_FILES['cv_file']['name'];
        $file_size = $_FILES['cv_file']['size'];
        $ext = pathinfo( $file_name, PATHINFO_EXTENSION );

        if ( ! in_array( strtolower( $ext ), array( 'pdf', 'doc', 'docx' ) ) ) {
            wp_send_json_error( array( 'message' => __( 'Định dạng CV không hợp lệ. Chỉ chấp nhận tệp PDF, DOC, DOCX.', 'theme-anphat' ) ) );
        }
        if ( $file_size > 5 * 1024 * 1024 ) {
            wp_send_json_error( array( 'message' => __( 'Kích thước tệp CV quá lớn (Tối đa 5MB).', 'theme-anphat' ) ) );
        }

        // Upload file lên thư mục media của WP
        $attachment_id = media_handle_upload( 'cv_file', 0 );

        if ( is_wp_error( $attachment_id ) ) {
            wp_send_json_error( array( 'message' => __( 'Không thể upload file CV: ', 'theme-anphat' ) . $attachment_id->get_error_message() ) );
        } else {
            $cv_url = wp_get_attachment_url( $attachment_id );
        }
    } else {
        wp_send_json_error( array( 'message' => __( 'Vui lòng đính kèm tệp hồ sơ (CV) của bạn.', 'theme-anphat' ) ) );
    }

    $post_content = "Họ tên ứng viên: {$name}\nEmail: {$email}\nSố điện thoại: {$phone}\nỨng tuyển vị trí: {$job_title}\n\n" .
                    "Liên kết tệp CV: {$cv_url}\n\nLời nhắn ứng viên:\n{$message}";

    $post_data = array(
        'post_title'   => sanitize_text_field( "Ứng tuyển " . $job_title . ": " . $name . " - " . date('Y-m-d H:i:s') ),
        'post_content' => $post_content,
        'post_status'  => 'publish',
        'post_type'    => 'cv_submission'
    );

    $post_id = wp_insert_post( $post_data );

    if ( $post_id ) {
        update_post_meta( $post_id, 'candidate_name', $name );
        update_post_meta( $post_id, 'candidate_email', $email );
        update_post_meta( $post_id, 'candidate_phone', $phone );
        update_post_meta( $post_id, 'job_title', $job_title );
        update_post_meta( $post_id, 'cv_file_url', $cv_url );

        wp_send_json_success( array( 'message' => __( 'Nộp hồ sơ ứng tuyển thành công! Phòng Nhân sự An Phát Pharma sẽ xem xét và phản hồi đến bạn.', 'theme-anphat' ) ) );
    } else {
        wp_send_json_error( array( 'message' => __( 'Đã xảy ra lỗi khi gửi hồ sơ. Vui lòng thử lại.', 'theme-anphat' ) ) );
    }
}
add_action( 'wp_ajax_submit_job_application', 'ajax_submit_job_application' );
add_action( 'wp_ajax_nopriv_submit_job_application', 'ajax_submit_job_application' );


/**
 * Render a WooCommerce product card used by the catalog page and AJAX filtering.
 */
function theme_anphat_render_woocommerce_product_card( $product_id = null ) {
    $product_id = $product_id ? absint( $product_id ) : get_the_ID();

    if ( ! function_exists( 'wc_get_product' ) ) {
        return;
    }

    $product = wc_get_product( $product_id );

    if ( ! $product ) {
        return;
    }

    $terms     = get_the_terms( $product_id, 'product_cat' );
    $term_name = ( $terms && ! is_wp_error( $terms ) ) ? $terms[0]->name : '';

    // Get price & handle placeholder "1 d" B2B pricing
    $price_val = $product->get_price();
    if ( empty( $price_val ) || floatval( $price_val ) <= 1 ) {
        $price = __( 'Liên hệ', 'theme-anphat' );
    } else {
        $price = $product->get_price_html();
    }
    ?>
    <div class="col-lg-3 col-md-6 d-flex">
        <div class="product-card bg-white border border-light rounded-4 shadow-sm p-3 w-100 d-flex flex-column hover-shadow">
            <a href="<?php echo esc_url( get_permalink( $product_id ) ); ?>" class="product-image-box position-relative rounded-3 bg-light p-3 mb-3 d-flex align-items-center justify-content-center text-decoration-none" style="height: 200px;">
                <?php if ( has_post_thumbnail( $product_id ) ) : ?>
                    <?php echo get_the_post_thumbnail( $product_id, 'medium', array( 'class' => 'img-fluid object-contain max-h-100' ) ); ?>
                <?php else : ?>
                    <span class="fs-1 text-primary-light"><i class="fa-solid fa-capsules text-primary"></i></span>
                <?php endif; ?>
                <?php if ( $term_name ) : ?>
                    <span class="badge bg-primary text-white position-absolute top-2 start-2 text-xs"><?php echo esc_html( $term_name ); ?></span>
                <?php endif; ?>
            </a>
            <h3 class="product-card-title font-heading fw-bold text-dark fs-6 mb-2 line-clamp-2">
                <a href="<?php echo esc_url( get_permalink( $product_id ) ); ?>" class="text-dark text-decoration-none hover-primary"><?php echo esc_html( get_the_title( $product_id ) ); ?></a>
            </h3>
            <p class="product-card-desc text-muted text-xs mb-3 line-clamp-3"><?php echo esc_html( wp_strip_all_tags( get_the_excerpt( $product_id ) ) ); ?></p>
            <div class="mt-auto d-flex justify-content-between align-items-center gap-2 pt-2 border-top">
                <?php if ( $price ) : ?>
                    <span class="product-card-price fw-bold text-primary text-sm"><?php echo wp_kses_post( $price ); ?></span>
                <?php endif; ?>
                <a href="<?php echo esc_url( get_permalink( $product_id ) ); ?>" class="btn btn-outline-primary btn-sm px-3 rounded-pill ms-auto"><i class="fa-solid fa-magnifying-glass me-1"></i><?php esc_html_e( 'Xem Chi Tiết', 'theme-anphat' ); ?></a>
            </div>
        </div>
    </div>
    <?php
}


/**
 * AJAX Handler: Lọc & Tìm kiếm sản phẩm
 */
function ajax_filter_products() {
    $category = isset( $_GET['category'] ) ? sanitize_text_field( $_GET['category'] ) : '';
    $search   = isset( $_GET['search'] ) ? sanitize_text_field( $_GET['search'] ) : '';

    $args = array(
        'post_type'      => 'product',
        'post_status'    => 'publish',
        'posts_per_page' => -1,
        'orderby'        => 'title',
        'order'          => 'ASC'
    );

    if ( ! empty( $category ) ) {
        $args['tax_query'] = array(
            array(
                'taxonomy' => 'product_cat',
                'field'    => 'slug',
                'terms'    => $category,
            ),
        );
    }

    if ( ! empty( $search ) ) {
        $args['s'] = $search;
    }

    $query = new WP_Query( $args );

    if ( $query->have_posts() ) {
        while ( $query->have_posts() ) {
            $query->the_post();
            theme_anphat_render_woocommerce_product_card();
            continue;
            $terms = get_the_terms( get_the_ID(), 'danh_muc_san_pham' );
            $term_name = ( $terms && ! is_wp_error( $terms ) ) ? $terms[0]->name : 'Dược Phẩm';
            ?>
            <div class="col-lg-3 col-md-6 d-flex">
                <div class="product-card bg-white border border-light rounded-4 shadow-sm p-3 w-100 d-flex flex-column hover-shadow">
                    <div class="product-image-box position-relative rounded-3 bg-light p-3 mb-3 d-flex align-items-center justify-content-center" style="height: 200px;">
                        <?php if ( has_post_thumbnail() ) : ?>
                            <?php the_post_thumbnail( 'medium', array( 'class' => 'img-fluid object-contain max-h-100' ) ); ?>
                        <?php else : ?>
                            <span class="fs-1 text-primary-light"><i class="fa-solid fa-capsules text-primary"></i></span>
                        <?php endif; ?>
                        <span class="badge bg-primary text-white position-absolute top-2 start-2 text-xs"><?php echo esc_html( $term_name ); ?></span>
                    </div>
                    <h3 class="product-card-title font-heading fw-bold text-dark fs-6 mb-2 line-clamp-2"><?php the_title(); ?></h3>
                    <p class="product-card-desc text-muted text-xs mb-3 line-clamp-3"><?php echo wp_strip_all_tags( get_the_excerpt() ); ?></p>
                    <div class="mt-auto d-flex justify-content-between align-items-center pt-2 border-top">
                        <span class="text-xs text-muted"><i class="fa-solid fa-circle-check text-success me-1"></i><?php esc_html_e( 'Đạt chuẩn GSP', 'theme-anphat' ); ?></span>
                        <a href="<?php the_permalink(); ?>" class="btn btn-outline-primary btn-sm px-3 rounded-pill"><i class="fa-solid fa-magnifying-glass me-1"></i><?php esc_html_e( 'Xem Chi Tiết', 'theme-anphat' ); ?></a>
                    </div>
                </div>
            </div>
            <?php
        }
        wp_reset_postdata();
    } else {
        ?>
        <div class="col-12 text-center py-5 text-muted">
            <span class="fs-1"><i class="fa-solid fa-face-frown"></i></span>
            <h4 class="mt-3 font-heading fw-bold"><?php esc_html_e( 'Không tìm thấy sản phẩm nào', 'theme-anphat' ); ?></h4>
            <p class="text-sm"><?php esc_html_e( 'Hãy thử từ khóa khác hoặc danh mục sản phẩm khác.', 'theme-anphat' ); ?></p>
        </div>
        <?php
    }
    wp_die();
}
add_action( 'wp_ajax_filter_products', 'ajax_filter_products' );
add_action( 'wp_ajax_nopriv_filter_products', 'ajax_filter_products' );

/**
 * Switch language based on query parameter or session/cookie
 */
function theme_anphat_set_locale( $locale ) {
    if ( isset( $_GET['lang'] ) ) {
        $lang = sanitize_text_field( $_GET['lang'] );
        if ( $lang === 'en' ) {
            return 'en_US';
        } elseif ( $lang === 'vi' ) {
            return 'vi';
        }
    }
    
    if ( isset( $_COOKIE['ap_lang'] ) ) {
        $lang = sanitize_text_field( $_COOKIE['ap_lang'] );
        if ( $lang === 'en' ) {
            return 'en_US';
        } elseif ( $lang === 'vi' ) {
            return 'vi';
        }
    }
    
    return $locale;
}
add_filter( 'locale', 'theme_anphat_set_locale' );

// Set cookie if lang is passed in URL
function theme_anphat_set_lang_cookie() {
    if ( isset( $_GET['lang'] ) ) {
        $lang = sanitize_text_field( $_GET['lang'] );
        if ( in_array( $lang, array( 'en', 'vi' ) ) ) {
            setcookie( 'ap_lang', $lang, time() + ( 30 * DAY_IN_SECONDS ), COOKIEPATH, COOKIE_DOMAIN );
        }
    }
}
add_action( 'init', 'theme_anphat_set_lang_cookie' );

/**
 * Customizer additions.
 */
require get_template_directory() . '/inc/customizer.php';

/**
 * Theme update checker.
 */
require get_template_directory() . '/inc/theme-update.php';
