/*نمایش تعداد وضعیت سفارش های کاربر*/ /*در انتظار پرداخت*/ function count_pending_payment_orders( $atts ) { // Attributes $atts = shortcode_atts( array( 'user_id' => get_current_user_id(), ), $atts, 'pending_payment_orders_count' ); // Get user ID $user_id = intval( $atts['user_id'] ); // Check if user ID is valid if ( $user_id <= 0 ) { return 'Invalid user ID'; } // Get orders with pending payment status for the given user ID $args = array( 'customer_id' => $user_id, 'status' => 'pending', 'return' => 'ids', ); $orders = wc_get_orders( $args ); // Return the count of pending payment orders return count( $orders ); } add_shortcode( 'pending_payment_orders_count', 'count_pending_payment_orders' ); /**********/ /*در حال انجام*/ function count_processing_orders( $atts ) { $atts = shortcode_atts( array( 'user_id' => get_current_user_id(), ), $atts, 'processing_orders_count' ); $user_id = intval( $atts['user_id'] ); if ( $user_id <= 0 ) { return 'Invalid user ID'; } $args = array( 'customer_id' => $user_id, 'status' => 'processing', 'return' => 'ids', ); $orders = wc_get_orders( $args ); return count( $orders ); } add_shortcode( 'processing_orders_count', 'count_processing_orders' ); /**********/ /*در انتظار بررسی*/ function count_on_hold_orders( $atts ) { $atts = shortcode_atts( array( 'user_id' => get_current_user_id(), ), $atts, 'on_hold_orders_count' ); $user_id = intval( $atts['user_id'] ); if ( $user_id <= 0 ) { return 'Invalid user ID'; } $args = array( 'customer_id' => $user_id, 'status' => 'on-hold', 'return' => 'ids', ); $orders = wc_get_orders( $args ); return count( $orders ); } add_shortcode( 'on_hold_orders_count', 'count_on_hold_orders' ); /**********/ /*تکمیل شده*/ function count_completed_orders( $atts ) { $atts = shortcode_atts( array( 'user_id' => get_current_user_id(), ), $atts, 'completed_orders_count' ); $user_id = intval( $atts['user_id'] ); if ( $user_id <= 0 ) { return 'Invalid user ID'; } $args = array( 'customer_id' => $user_id, 'status' => 'completed', 'return' => 'ids', ); $orders = wc_get_orders( $args ); return count( $orders ); } add_shortcode( 'completed_orders_count', 'count_completed_orders' ); /**********/ /*لغو شده*/ function count_cancelled_orders( $atts ) { $atts = shortcode_atts( array( 'user_id' => get_current_user_id(), ), $atts, 'cancelled_orders_count' ); $user_id = intval( $atts['user_id'] ); if ( $user_id <= 0 ) { return 'Invalid user ID'; } $args = array( 'customer_id' => $user_id, 'status' => 'cancelled', 'return' => 'ids', ); $orders = wc_get_orders( $args ); return count( $orders ); } add_shortcode( 'cancelled_orders_count', 'count_cancelled_orders' ); /**********/ /*مستردد شده*/ function count_refunded_orders( $atts ) { $atts = shortcode_atts( array( 'user_id' => get_current_user_id(), ), $atts, 'refunded_orders_count' ); $user_id = intval( $atts['user_id'] ); if ( $user_id <= 0 ) { return 'Invalid user ID'; } $args = array( 'customer_id' => $user_id, 'status' => 'refunded', 'return' => 'ids', ); $orders = wc_get_orders( $args ); return count( $orders ); } add_shortcode( 'refunded_orders_count', 'count_refunded_orders' ); /**********/ /*ناموفق*/ function count_failed_orders( $atts ) { $atts = shortcode_atts( array( 'user_id' => get_current_user_id(), ), $atts, 'failed_orders_count' ); $user_id = intval( $atts['user_id'] ); if ( $user_id <= 0 ) { return 'Invalid user ID'; } $args = array( 'customer_id' => $user_id, 'status' => 'failed', 'return' => 'ids', ); $orders = wc_get_orders( $args ); return count( $orders ); } add_shortcode( 'failed_orders_count', 'count_failed_orders' ); /**********/ /*نمایس به صورت لیست با شورت کد*/ function count_orders_by_status_list( $atts ) { $atts = shortcode_atts( array( 'user_id' => get_current_user_id(), ), $atts, 'orders_status_list' ); $user_id = intval( $atts['user_id'] ); if ( $user_id <= 0 ) { return 'Invalid user ID'; } $statuses = array( 'pending' => 'در انتظار پرداخت', 'processing' => 'در حال انجام', 'on-hold' => 'در انتظار بررسی', 'completed' => 'تکمیل شده', 'cancelled' => 'لغو شده', 'refunded' => 'مستردد شده', 'failed' => 'ناموفق', ); $output = ''; return $output; } add_shortcode( 'orders_status_list', 'count_orders_by_status_list' ); /**********/ /*نمایش قبل جدول سفارشات*/ function display_order_status_counts_before_orders_table() { $user_id = get_current_user_id(); if ( $user_id <= 0 ) { return; } $statuses = array( 'pending' => 'در انتظار پرداخت', 'processing' => 'در حال انجام', 'on-hold' => 'در انتظار بررسی', 'completed' => 'تکمیل شده', 'cancelled' => 'لغو شده', 'refunded' => 'مستردد شده', 'failed' => 'ناموفق', 'draft' => 'پیش نویس', ); $output = '

تعداد سفارشات شما در هر وضعیت:

'; $output .= ''; echo $output; } add_action( 'woocommerce_before_account_orders', 'display_order_status_counts_before_orders_table', 10 );