/*
Theme Name: Betheme Child
Theme URI: https://themes.muffingroup.com/betheme
Author: Muffin group
Author URI: https://muffingroup.com
Description: Child Theme for Betheme
Template: betheme
Version: 1.6.2
*/

	
// آپلود تصویر پروفایل و ذخیره آن به عنوان متای کاربر
add_action('elementor_pro/forms/new_record', 'nias_elementor_profile_picture_upload', 10, 2);

function nias_elementor_profile_picture_upload($record, $ajax_handler) {
    $form_name = $record->get_form_settings('form_name');
    //
    //اسم فرم حتماً تصویر پروفایل باشد
    //
    if ('تصویر پروفایل' !== $form_name) {
        return;
    }

    $form_data = $record->get_formatted_data();
    //
    //
    //اسم فیلد حتماً تصویر پروفایل باشد
    //
    // بررسی وجود لینک تصویر پروفایل
    if (!empty($form_data['تصویر پروفایل'])) {
        $profile_picture_url = $form_data['تصویر پروفایل']; // دریافت URL تصویر پروفایل

        $current_user_id = get_current_user_id();

        // ذخیره URL تصویر به عنوان متای کاربر
        //
        // nias_profile_user آید فیلد حتماً این باشد
        //
        update_user_meta($current_user_id, 'nias_profile_user', $profile_picture_url);

        $ajax_handler->add_response_data('message', 'تصویر آپدیت شد.');
    } else {
        $ajax_handler->add_error_message("تصویر آپلود نشد.");
        $ajax_handler->is_success = false;
    }
}


//تغییر پروفایل کاربر
add_filter( 'get_avatar_url', 'nias_get_avatar_url', 10, 3 );
function nias_get_avatar_url( $url, $id_or_email, $args ) {
    $id = '';
    // بررسی نوع ورودی
    if ( is_numeric( $id_or_email ) ) {
        $id = (int) $id_or_email; // اگر شناسه باشد
    } elseif ( is_object( $id_or_email ) ) {
        if ( ! empty( $id_or_email->user_id ) ) {
            $id = (int) $id_or_email->user_id; // اگر شیء باشد و شناسه کاربر داشته باشد
        }
    } else {
        // دریافت شناسه کاربر از ایمیل
        $user = get_user_by( 'email', $id_or_email );
        $id = ! empty( $user ) ? $user->data->ID : '';
    }

    // دریافت URL تصویر پروفایل سفارشی از متای 'nias_profile_user'
    $custom_url = $id ? get_user_meta( $id, 'nias_profile_user', true ) : '';

    // اگر تصویر سفارشی وجود نداشته باشد یا 'force_default' تنظیم شده باشد، از تصویر پیش‌فرض استفاده می‌کنیم
    if ( empty( $custom_url ) || ! empty( $args['force_default'] ) ) {
        return esc_url_raw( 'https://niasel.ir/wp-content/uploads/2024/09/2e8c797833384e1920a49c01a27c165d.jpg' );
    } else {
        return esc_url_raw( $custom_url );
    }
}

			 
//محاسبه روز های گذشته از زمان عضویت
function days_since_registration_shortcode() {
if (is_user_logged_in()) {
$user = wp_get_current_user();
$registration_date = strtotime($user->user_registered);
$current_date = strtotime(current_time('mysql'));
$days_difference = floor(($current_date - $registration_date) / (60 * 60 * 24));
return "$days_difference";
}
return "شما هنوز ثبت نام نکرده‌اید.";
}
add_shortcode('days_since_registration', 'days_since_registration_shortcode');
?>
<style>
.nias-info-box:before {
content: "" ;
width: 90%;
height: 100%;
position: absolute;
top:-20px;
background-color: #f7f7f7;
border-radius: 20px;
left: 50%;
transform: translateX(-50%);
margin: 0;
z-index: -1;

}

.nias-info-box-text-mini{
color: #6C6C6C;
font-size: 15px
}
</style>
<?php
					  کد تعداد سفارشات ثبت شده
//تعداد کل سفارشات کاربر

function total_orders_shortcode($atts) {
// بررسی آیا کاربر لاگین است
if (is_user_logged_in()) {
// گرفتن شناسه کاربر فعلی
$current_user_id = get_current_user_id();

// محاسبه تعداد کل سفارشات کاربر
$args = array(
'post_type' => 'shop_order',
'post_status' => 'wc-completed', // وضعیت سفارشات تکمیل شده
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => '_customer_user',
'value' => $current_user_id,
'compare' => '='
)
)
);

$orders_query = new WP_Query($args);
$total_orders = $orders_query->found_posts;

return "$total_orders";
} else {
return "برای دیدن تعداد کل سفارشات، لطفاً وارد سیستم شوید.";
}
}
add_shortcode('total_orders', 'total_orders_shortcode');

					  کد مبلغ کل سفارشات
//جمع مبلغ کل سفارشات کاربر

function total_order_amount_shortcode($atts) {
// بررسی آیا کاربر لاگین است
if (is_user_logged_in()) {
// گرفتن شناسه کاربر فعلی
$current_user_id = get_current_user_id();

// محاسبه جمع مبلغ کل سفارشات کاربر
$args = array(
'post_type' => 'shop_order',
'post_status' => 'wc-completed', // وضعیت سفارشات تکمیل شده
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => '_customer_user',
'value' => $current_user_id,
'compare' => '='
)
)
);

$orders_query = new WP_Query($args);
$total_order_amount = 0;

if ($orders_query->have_posts()) {
while ($orders_query->have_posts()) {
$orders_query->the_post();
$order = wc_get_order(get_the_ID());
$total_order_amount += floatval($order->get_total());
}
}

return wc_price($total_order_amount);
} else {
return "برای دیدن مجموع مبلغ کل سفارشات، لطفاً وارد سیستم شوید.";
}
}
add_shortcode('total_order_amount', 'total_order_amount_shortcode');

					  کد تعداد کامنت های کاربر
function count_user_reviews() {
if (is_user_logged_in()) {
$user_id = get_current_user_id(); // شناسه کاربر فعلی

// آرگومان‌ها برای WP_Comment_Query
$args = array(
'user_id' => $user_id,
'post_type' => 'product', // فقط نظرات محصولات
'status' => 'approve', // فقط نظرات تایید شده
);

$comments_query = new WP_Comment_Query;
$comments = $comments_query->query($args);

$review_count = count($comments); // تعداد نظرات

return "$review_count";
} else {
echo '<p>لطفاً وارد حساب کاربری خود شوید.</p>'; // پیام برای کاربرانی که وارد نشده‌اند
}
}

add_shortcode('count_user_comments_shortcode' , 'count_user_reviews');

					  کد نمایش سفارشات اخیر
/* -----------PHP code------------*/
function nias_last_orders(){
// گرفتن ---- سفارش اخیر کاربر فعلی
$current_user_id = get_current_user_id();
$args = array(
'numberposts' => 5, // بررسی تعداد بیشتر از ----
'meta_key' => '_customer_user',
'meta_value' => $current_user_id,
'post_type' => 'shop_order',
'post_status' => array('wc-completed', 'wc-processing', 'wc-on-hold' , 'wc-cancelled' , 'wc-pending'), // وضعیت‌های سفارش
);

$recent_orders = get_posts( $args );

// نمایش سفارش‌ها
$displayed_orders = array_slice( $recent_orders, 0, 5 ); // فقط ---- سفارش اول نمایش داده شود

if ( !empty( $displayed_orders ) ) {
foreach ( $displayed_orders as $order_post ) {
$order = wc_get_order( $order_post->ID );
$order_number = $order->get_order_number();
$order_total = wc_price( $order->get_total() );
$order_status = wc_get_order_status_name( $order->get_status() );
$order_view_url = esc_url( $order->get_view_order_url() );

echo '<div class="order-row">';
echo '<div>سفارش #' . $order_number . '</div>';
echo '<div>مبلغ: ' . $order_total . '</div>';
echo '<div class="status ' . esc_attr( $order->get_status() ) . '">وضعیت: ' . $order_status . '</div>';
echo '<div><a href="' . $order_view_url . '" class="view-order-button">مشاهده سفارش</a></div>';
echo '</div>';
}

// اگر تعداد سفارشات بیشتر از --- باشد، نمایش لینک "مشاهده بیشتر سفارشات"
if ( count( $recent_orders ) > 4 ) {
echo '<div class="view-more-orders">';
echo '<a href="' . esc_url( wc_get_account_endpoint_url( 'orders' ) ) . '">مشاهده همه سفارشات</a>';
echo '</div>';
}
} else {
echo 'هیچ سفارشی پیدا نشد.';
}



}

add_shortcode('nias_lastorders' , 'nias_last_orders');


کد استایل سفارشات اخیر
/*-----------CSS code-----------*/


.order-row {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px;
border-bottom: 1px solid #dfdfdf;
}

a.view-order-button {
padding: 5px 10px;
background-color: #0075ff;
color: white;
border-radius: 10px;
}

.view-more-orders {
display: flex;
justify-content: center;
align-items: center;
}

.view-more-orders a {
background-color: #0075ff;
padding: 10px 20px;
color: white;
margin-top: 20px;
border-radius: 10px;
}

.status.completed {
color: #00ca00;
}

.status.cancelled {
color: red;
}

.status.on-hold {
color: #ffbf00;
}

.status.processing {
color: #0072ff;
}

.status.pending {
color: #00bdff;
}

@media only screen and (max-width:766px){
.order-row {
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(2, 1fr);
gap: 20px;
justify-items: center;
}
}

					  کد ریسپانسیو سازی پارت 1
/*-------کد jquery--------*/
/*----حواستون باشه داخل jQuery بزارید---------*/
$('.niasaccmenu').click(function(){

$('.niassideaccountmenu').addClass('open'); 

})

$('.closeaccmenu').click(function(){

$('.niassideaccountmenu').removeClass('open'); 

})





/*-----------کد css---------*/
.niasaccmenu{
margin-left: auto;
}
@media only screen and (max-width:1024px){
.niassideaccountmenu{
position: fixed;
top: 0;
right: -100%;
z-index: 999;
transition: 0.3s;
}
.niassideaccountmenu.open{
right: 0;
}


}

@media only screen and (max-width:767px){
.telegramsupport .elementor-icon-box-content{
display: none;
}
.telegramsupport .elementor-icon-box-icon {
margin: 0!important;
display: flex!important;
align-items: center;
}

.telegramsupport .elementor-widget-container {
padding: 10px!important; 
}
}

.elementor-widget-woocommerce-my-account .e-my-account-tab:not(.e-my-account-tab__dashboard--custom) .woocommerce-MyAccount-content h2:first-of-type {
    font-family: 'Mikhak';
    color: #173E56;
    font-size: 30px;
    font-weight: 700;
    margin-top: 30px;
}




					  