<?php
/**
 * Enqueue child styles.
 */
function child_enqueue_styles() {
    wp_enqueue_style( 'child-theme', get_stylesheet_directory_uri() . '/style.css', array(), 100 );
}

add_action( 'wp_enqueue_scripts', 'child_enqueue_styles' );


/**
 * Add thumbnail support to bw_service post type
 */
function bw_add_service_thumbnail_support() {
    add_post_type_support('bw_service', 'thumbnail');
}
add_action('init', 'bw_add_service_thumbnail_support', 11);

/**
 * Add thumbnail column to bw_service post type admin
 */
function bw_add_service_thumbnail_column($columns) {
    // Reorder columns to place thumbnail as third visible column
    $new_columns = array();
    
    // First add checkbox if it exists
    if (isset($columns['cb'])) {
        $new_columns['cb'] = $columns['cb'];
    }
    
    // Then add title
    if (isset($columns['title'])) {
        $new_columns['title'] = $columns['title'];
    }
    
    // Then add service categories (taxonomy column)
    if (isset($columns['taxonomy-bw_service_category'])) {
        $new_columns['taxonomy-bw_service_category'] = $columns['taxonomy-bw_service_category'];
    }
    
    // Add thumbnail as third visible column
    $new_columns['bw_thumbnail'] = __('Thumbnail', 'kadence-child');
    
    // Add remaining columns
    foreach($columns as $key => $value) {
        if (!isset($new_columns[$key])) {
            $new_columns[$key] = $value;
        }
    }
    
    return $new_columns;
}
add_filter('manage_bw_service_posts_columns', 'bw_add_service_thumbnail_column');

/**
 * Display thumbnail in bw_service admin column
 */
function bw_display_service_thumbnail_column($column_name, $post_id) {
    if ($column_name == 'bw_thumbnail') {
        $thumbnail_id = get_post_thumbnail_id($post_id);
        if ($thumbnail_id) {
            $thumbnail = wp_get_attachment_image($thumbnail_id, array(60, 60), true, array('style' => 'width:60px;height:60px;object-fit:cover;'));
            echo $thumbnail;
        } else {
            echo '<span style="display:inline-block;width:60px;height:60px;background:#f0f0f0;border:1px solid #ddd;text-align:center;line-height:60px;color:#999;">—</span>';
        }
    }
}
add_action('manage_bw_service_posts_custom_column', 'bw_display_service_thumbnail_column', 10, 2);

/**
 * Make thumbnail column sortable
 */
function bw_make_service_thumbnail_column_sortable($columns) {
    $columns['bw_thumbnail'] = 'has_thumbnail';
    return $columns;
}
add_filter('manage_edit-bw_service_sortable_columns', 'bw_make_service_thumbnail_column_sortable');

/**
 * Handle sorting by thumbnail
 */
function bw_sort_services_by_thumbnail($query) {
    if (!is_admin() || !$query->is_main_query()) {
        return;
    }
    
    if ($query->get('post_type') !== 'bw_service') {
        return;
    }
    
    $orderby = $query->get('orderby');
    
    if ($orderby == 'has_thumbnail') {
        $query->set('meta_key', '_thumbnail_id');
        $query->set('orderby', 'meta_value_num');
    }
}
add_action('pre_get_posts', 'bw_sort_services_by_thumbnail');

/**
 * Add custom admin styles for bw_service thumbnail column
 */
function bw_service_admin_thumbnail_styles() {
    $screen = get_current_screen();
    if ($screen && $screen->post_type == 'bw_service' && $screen->base == 'edit') {
        ?>
        <style>
            .column-bw_thumbnail {
                width: 80px;
                text-align: center;
            }
            .column-bw_thumbnail img {
                border: 1px solid #ddd;
                border-radius: 4px;
                vertical-align: middle;
            }
            @media screen and (max-width: 782px) {
                .column-bw_thumbnail {
                    display: none;
                }
            }
        </style>
        <?php
    }
}
add_action('admin_head', 'bw_service_admin_thumbnail_styles');

// Tambahkan kolom baru ke daftar admin post type bw_service
add_filter('manage_bw_service_posts_columns', 'bw_add_service_price_column');
function bw_add_service_price_column($columns) {
    $columns['service_price'] = 'Service Price'; // Judul kolom
    return $columns;
}

// Tampilkan isi field ACF di kolom tersebut
add_action('manage_bw_service_posts_custom_column', 'bw_show_service_price_column', 10, 2);
function bw_show_service_price_column($column, $post_id) {
    if ($column == 'service_price') {
        $price = get_field('service_price', $post_id);
        echo $price ? esc_html($price) : '—';
    }
}

/**
 * Fix Yoast SEO to properly output custom meta titles and descriptions
 * Added to fix issue where meta data is saved but not displayed on frontend
 */

// Force Yoast to use our custom SEO title
add_filter('wpseo_title', 'force_custom_seo_title', 999);
function force_custom_seo_title($title) {
    if (is_singular()) {
        global $post;
        $custom_title = get_post_meta($post->ID, '_yoast_wpseo_title', true);
        if (!empty($custom_title)) {
            return $custom_title;
        }
    }
    return $title;
}

// Force Yoast to use our custom meta description
add_filter('wpseo_metadesc', 'force_custom_seo_description', 999);
function force_custom_seo_description($description) {
    if (is_singular()) {
        global $post;
        $custom_desc = get_post_meta($post->ID, '_yoast_wpseo_metadesc', true);
        if (!empty($custom_desc)) {
            return $custom_desc;
        }
    }
    return $description;
}

// Add standard meta description tag if Yoast doesn't output it
add_action('wp_head', 'add_meta_description_if_missing', 1);
function add_meta_description_if_missing() {
    if (is_singular()) {
        global $post;
        $custom_desc = get_post_meta($post->ID, '_yoast_wpseo_metadesc', true);
        if (!empty($custom_desc)) {
            // Only add if Yoast hasn't already added it
            if (!has_action('wpseo_head')) {
                echo '<meta name="description" content="' . esc_attr($custom_desc) . '" />' . "\n";
            }
        }
    }
}

// Also force Open Graph title and description
add_filter('wpseo_opengraph_title', 'force_custom_og_title', 999);
function force_custom_og_title($title) {
    if (is_singular()) {
        global $post;
        $custom_title = get_post_meta($post->ID, '_yoast_wpseo_title', true);
        if (!empty($custom_title)) {
            return $custom_title;
        }
    }
    return $title;
}

add_filter('wpseo_opengraph_desc', 'force_custom_og_description', 999);
function force_custom_og_description($description) {
    if (is_singular()) {
        global $post;
        $custom_desc = get_post_meta($post->ID, '_yoast_wpseo_metadesc', true);
        if (!empty($custom_desc)) {
            return $custom_desc;
        }
    }
    return $description;
}