/** * 1. ذخیره کردن فیلدهای ماه و روز تولد در دیتابیس سفارش */ add_action( 'woocommerce_checkout_update_order_meta', 'hamyar_save_birth_date_fields' ); function hamyar_save_birth_date_fields( $order_id ) { // ذخیره ماه تولد if ( ! empty( $_POST['billing_birth_month'] ) ) { update_post_meta( $order_id, 'billing_birth_month', sanitize_text_field( $_POST['billing_birth_month'] ) ); } // ذخیره روز تولد if ( ! empty( $_POST['billing_birth_day'] ) ) { update_post_meta( $order_id, 'billing_birth_day', sanitize_text_field( $_POST['billing_birth_day'] ) ); } } /** * 2. اضافه کردن فیلدها به ایمیل‌های ووکامرس (و صفحه تشکر) * این کد تداخلی با سایر فیلدها ندارد و به انتهای لیست متا اضافه می‌شود. */ add_filter( 'woocommerce_email_order_meta_fields', 'hamyar_add_birth_date_to_emails', 10, 3 ); function hamyar_add_birth_date_to_emails( $fields, $sent_to_admin, $order ) { // دریافت مقادیر ذخیره شده $month_value = $order->get_meta( 'billing_birth_month' ); $day_value = $order->get_meta( 'billing_birth_day' ); // تعریف آرایه برای تبدیل عدد ماه به نام فارسی $months_list = array( '1' => 'فروردین', '2' => 'اردیبهشت', '3' => 'خرداد', '4' => 'تیر', '5' => 'مرداد', '6' => 'شهریور', '7' => 'مهر', '8' => 'آبان', '9' => 'آذر', '10' => 'دی', '11' => 'بهمن', '12' => 'اسفند' ); // اگر ماه انتخاب شده بود، نام آن را پیدا کن، اگر نه خود عدد را نشان بده $month_name = isset( $months_list[ $month_value ] ) ? $months_list[ $month_value ] : $month_value; // اضافه کردن ماه تولد به لیست ایمیل if ( $month_value ) { $fields['billing_birth_month'] = array( 'label' => 'ماه تولد', 'value' => $month_name, ); } // اضافه کردن روز تولد به لیست ایمیل if ( $day_value ) { $fields['billing_birth_day'] = array( 'label' => 'روز تولد', 'value' => $day_value, ); } return $fields; }