اگر یک سایت فروشگاه فایل در وردپرس دارید و آن را به وسیله افزونه easy digital download راه اندازی کرده اید ممکن است قصد اضافه کردن فیلد های سفارشی به صفحه پرداخت آن را داشته باشید. همانطور که می دانید به صورت پیشفرض صفحه پرداخت افزونه EDD شامل 3 فیلد آدرس ایمیل – نام – نام خانوداگی است و در تنظیمات افزونه گزینه ای برای مدیریت فیلد ها وجود ندارد. اگر قصد اضافه کردن فیلد شماره تلفن به صفحه پرداخت افزونه EDD را دارید ما در ادامه آن برای شما توضیح می دهیم.
افزودن فیلد شماره تماس به EDD
برای اضافه کردن فیلد شماره تلفن به صفحه پرداخت افزونه easy digital download باید کد زیر را به انتهای فایل functions.php قالب وردپرس خود اضافه کنید.
البته به شما توصیه می کنیم در سایت خود حتما از چایلد تم استفاده کنید، چون در هنگام بروزرسانی قالب وردپرس سایت خود تغییرات شما همچنان باقی بماند.
/** * Display phone number field at checkout * Add more here if you need to */ function sumobi_edd_display_checkout_fields() { ?> <p id="edd-phone-wrap"> <label class="edd-label" for="edd-phone"> <?php echo 'شماره تماس'; ?> </label> <span class="edd-description"> <?php echo 'شماره تلفن خود را وارد کنید'; ?> </span> <input class="edd-input" type="text" name="edd_phone" id="edd-phone" placeholder="<?php echo 'شماره تماس'; ?>" /> </p> <?php } add_action( 'edd_purchase_form_user_info', 'sumobi_edd_display_checkout_fields' ); /** * Make phone number required * Add more required fields here if you need to */ function sumobi_edd_required_checkout_fields( $required_fields ) { $required_fields = array( 'edd_phone' => array( 'error_id' => 'invalid_phone', 'error_message' => 'وارد کردن شماره تلفن اجباری می باشد' ), ); return $required_fields; } add_filter( 'edd_purchase_form_required_fields', 'sumobi_edd_required_checkout_fields' ); /** * Set error if phone number field is empty * You can do additional error checking here if required */ function sumobi_edd_validate_checkout_fields( $valid_data, $data ) { if ( empty( $data['edd_phone'] ) ) { edd_set_error( 'invalid_phone', 'وارد کردن شماره تلفن اجباری می باشد' ); } } add_action( 'edd_checkout_error_checks', 'sumobi_edd_validate_checkout_fields', 10, 2 ); /** * Store the custom field data into EDD's payment meta */ function sumobi_edd_store_custom_fields( $payment_meta ) { $payment_meta['phone'] = isset( $_POST['edd_phone'] ) ? sanitize_text_field( $_POST['edd_phone'] ) : ''; return $payment_meta; } add_filter( 'edd_payment_meta', 'sumobi_edd_store_custom_fields'); /** * Add the phone number to the "View Order Details" page */ function sumobi_edd_view_order_details( $payment_meta, $user_info ) { $phone = isset( $payment_meta['phone'] ) ? $payment_meta['phone'] : 'خالی'; ?> <div class="column-container"> <div class="column"> <strong><?php echo 'شماره تلفن: '; ?></strong> <?php echo $phone; ?> </div> </div> <?php } add_action( 'edd_payment_personal_details_list', 'sumobi_edd_view_order_details', 10, 2 ); /** * Add a {phone} tag for use in either the purchase receipt email or admin notification emails */ edd_add_email_tag( 'phone', 'Customer\'s phone number', 'sumobi_edd_email_tag_phone' ); /** * The {phone} email tag */ function sumobi_edd_email_tag_phone( $payment_id ) { $payment_data = edd_get_payment_meta( $payment_id ); return $payment_data['phone']; } ?>
کد بالا کارهای زیر را انجام می دهد:
- فیلد شماره تلفن را به قسمت اطلاعات پرداخت EDD اضافه می کند.
- فیلد شماره تلفن ضروری خواهد بود و حتما باید پر شود.
- در صورت پر نکردن فیلد شماره تلفن یک پیام به کاربر نمایش داده می شود.
- شماره تلفن را در قسمت جزئیات خرید نمایش می دهد.
- شورت کد {phone} را اضافه می کند که از آن برای نمایش شماره تلفن کاربر در ایمیل رسید خرید می توانید استفاده کند.
خب حالا به راحتی شما فیلد شماره تلفن را به صفحه پرداخت اضافه کردید و در کدهای بالا هم می توانید به دلخواه متن فیلد را تنظیم کنید، اما همانطور که در بالا هم ذکر شد این فیلد ضروری خواهد بود و اگر می خواهید فیلد شماره تلفن اختیاری باشد بجای کد بالا از کد زیر استفاده کنید.
/** * Display phone number field at checkout * Add more here if you need to */ function sumobi_edd_display_checkout_fields() { ?> <p id="edd-phone-wrap"> <label class="edd-label" for="edd-phone"> <?php echo 'شماره تماس'; ?> </label> <span class="edd-description"> <?php echo 'شماره تلفن خود را وارد کنید'; ?> </span> <input class="edd-input" type="text" name="edd_phone" id="edd-phone" placeholder="<?php echo 'شماره تماس'; ?>" /> </p> <?php } add_action( 'edd_purchase_form_user_info', 'sumobi_edd_display_checkout_fields' ); /** * Store the custom field data into EDD's payment meta */ function sumobi_edd_store_custom_fields( $payment_meta ) { $payment_meta['phone'] = isset( $_POST['edd_phone'] ) ? sanitize_text_field( $_POST['edd_phone'] ) : ''; return $payment_meta; } add_filter( 'edd_payment_meta', 'sumobi_edd_store_custom_fields'); /** * Add the phone number to the "View Order Details" page */ function sumobi_edd_view_order_details( $payment_meta, $user_info ) { $phone = isset( $payment_meta['phone'] ) ? $payment_meta['phone'] : 'خالی'; ?> <div class="column-container"> <div class="column"> <strong><?php echo 'شماره تلفن: '; ?></strong> <?php echo $phone; ?> </div> </div> <?php } add_action( 'edd_payment_personal_details_list', 'sumobi_edd_view_order_details', 10, 2 ); /** * Add a {phone} tag for use in either the purchase receipt email or admin notification emails */ edd_add_email_tag( 'phone', 'Customer\'s phone number', 'sumobi_edd_email_tag_phone' ); /** * The {phone} email tag */ function sumobi_edd_email_tag_phone( $payment_id ) { $payment_data = edd_get_payment_meta( $payment_id ); return $payment_data['phone']; } ?>
حالا اگر از صفحه پرداخت سایت خود بازدید کنید مشاهده می کنید که فیلد شماره تلفن به انتهای فیلدها اضافه شده است:
همچنین شما می توانید در قسمت دانلودها » سابقه پرداخت » جزئیات دانلود شماره تماس مشتریان را ببینید.
تمام کاری که باید انجام می دادید همین بود امیدواریم نحوه اضافه کردن فیلد شماره تلفن به صفحه پرداخت easy digital download را یاد گرفته باشید. همچنین ممکن است برای انجام سفارشی سازی های بیشتر در فروشگاه فایل خود بخواهید مقالات زیر را ببینید.
سلام
چطور میشه پیام ” وارد کردن شماره الزامی است: رو قرمز کرد؟
سلام چطور میشه فیلد ایمیل رو غیر اجباری کرد ؟
سپاس از آموزش خوبتون.