- 1,356 بازدید
- بدون نظر
سلام ، قرار هستش در این مقاله از ایکس اسکریپت کدهای اضافه کردن فیدهای دلخواه مثل شماره موبایل ، آدرس و … به قسمت پرداخت افزونه EDD وردپرس رو معرفی کنیم.
اضافه کردن فیلدهای اضافی به افزونه Easy Digital Downloads
افزونه EDD یکی از پرکاربرد ترین افزونه های فروش فایل هستش و این باعث افتخار ماست که درگاه بانک ملت برای EDD رو داخل مخزن وردپرس قرار دادیم تا به رایگان بتونید ازش برای فروش محصولات خودتون استفاده کنید .
شاید شما نیاز داشته باشید علاوه بر ۳ فیلد “نام” ، “نام خانوادگی” و “ایمیل” اطلاعات دیگری مثل شماره موبایل ، آدرس ، کدپستی و … رو به فیلدهاتون اضافه کنید.به عنوان مثال در آموزش زیر قرار هستش که …
- فیلد شماره موبایل رو به قسمت اطلاعات پرداخت EDD اضافه کنیم
- فیلد شماره موبایل رو الزامی (required) کنیم
- پیام خطایی در صورت تکمیل نشدن این فیلد نمایش داده بشود
- اطلاعات این فیلد اضافی در پنل وردپرس (payment meta) ذحیره بشود
- در قسمت جزئیات خرید این اطلاعات نمایش داده بشود
- اضافه کردن شورت کد {phone} برای ارسال ایمیل اطلاع رسانی به مدیر و خریدار محصول
برای این کار کدهای زیر رو به انتهای فایل functions.php قالب خودتون اضافه کنید .
<?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 'Contact Number'; ?> </label> <span class="edd-description"> <?php echo 'Enter your phone number so we can get in touch with you.'; ?> </span> <input class="edd-input" type="text" name="edd_phone" id="edd-phone" placeholder="<?php echo 'Contact Number'; ?>" /> </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' => 'Please enter a valid Phone number' ), ); 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', 'Please enter your phone number.' ); } } add_action( 'edd_checkout_error_checks', 'sumobi_edd_validate_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'] : 'none'; ?> <div class="column-container"> <div class="column"> <strong><?php echo 'Phone: '; ?></strong> <?php echo $phone; ?> </div> </div> <?php } add_action( 'edd_payment_personal_details_list', 'sumobi_edd_view_order_details', ۱۰, ۲ ); /** * 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']; } ?>
به نکات زیر دقت کنید
- قسمت های مثل ‘Enter your phone number so we can get in touch with you’ یا ‘Please enter a valid Phone number’ یا ‘Contact Number’ رو با عبارت های فارسی خودتون می تونید جایگزین کنید.
- همچنین این یک مثال بود برای افزودن فقط یک فیلد ، دقیقا هر قسمت از کد رو با کمی آشنایی به php می تونید کپی کنید و بجای یک فیلد چندتا قیلد اضافه کنید.
- ۲ تا قسمت هستش که یکی فیلد رو الزامی می کنه و یکی باعث خطا نمایش داده بشه ، اونها رو بهش دقت کنید ، اگر می خواهید فیلد الزامی نباشه اونجا رو نباید به فیلدهاتون اضافه کنید.
- به قسمت پیکربندی افزونه رفته و در قسمت ایمیل می تونید از شورت کد {phone} استفاده کنید.
من خودم ازین کدها یجا استفاده کردم ۴ تا قیلد اضافه کردم و ۳ تاشونو الزامی کردم هیچ مشکلی نداره ، اگر باز مشکلی بود بفرمایید راهنمایی کنم ، یا حق