افزونه Easy Digital Downloads یکی از پرکاربرد ترین افزونه های فروش فایل هستش و این باعث افتخار ماست که درگاه بانک ملت برای EDD رو داخل مخزن وردپرس قرار دادیم تا به رایگان بتونید ازش برای فروش محصولات خودتون استفاده کنید .قرار هستش که کدهای اضافه کردن فیدهای دلخواه مثل شماره موبایل ، آدرس و … به قسمت پرداخت افزونه EDD وردپرس رو معرفی کنیم.

اضافه کردن فیلدهای دلخواه به افزونه Easy Digital Downloads

شاید شما نیاز داشته باشید علاوه بر ۳ فیلد “نام” ، “نام خانوادگی” و “ایمیل” اطلاعات دیگری مثل شماره موبایل ، آدرس ، کدپستی و … رو به فیلدهاتون اضافه کنید.به عنوان مثال در آموزش زیر قرار هستش که …

  • فیلد شماره موبایل رو به قسمت اطلاعات پرداخت 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', 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'] : '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', 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'];
}
?>

به نکات زیر دقت کنید

  • قسمت های مثل ‘Enter your phone number so we can get in touch with you’ یا ‘Please enter a valid Phone number’ یا ‘Contact Number’ رو با عبارت های فارسی خودتون می تونید جایگزین کنید.
  • همچنین این یک مثال بود برای افزودن فقط یک فیلد ، دقیقا هر قسمت از کد رو با کمی آشنایی به php می تونید کپی کنید و بجای یک فیلد چندتا قیلد اضافه کنید.
  • ۲ تا قسمت هستش که یکی فیلد رو الزامی می کنه و یکی باعث خطا نمایش داده بشه ، اونها رو بهش دقت کنید ، اگر می خواهید فیلد الزامی نباشه اونجا رو نباید به فیلدهاتون اضافه کنید.
  • به قسمت پیکربندی افزونه رفته و در قسمت ایمیل می تونید از شورت کد {phone} استفاده کنید.

موفق باشید

منبع
محمد جواد کوشکی
خودمو یک متخصص نمی دونم چون هر روز دارم چیز های جدیدی در حوزه کسب و کار اینترنتی یاد می گیرم.
7 نظر ارسال شده
  1. حسین گفت:

    سلام
    من انجام دادم و کار میکنه
    ولی موقعی که پرداخت انجام میشه یک صفحه خالی میاد و لینک دانلود نشون داده نمیشه
    البته پرداخت رایگان

  2. حسین گفت:

    و از موقعی که اینو گذاشتم هم هر برگه ای ویرایش میکنم بعد از زدن دکمه بروزرسانی فقط یک صفحه سفید میاد

    • سلام مشکل در کدهایی هستش که در فایل functions.php قرار دادید و در ظاهر درست کار میکنه ولی مشخصه که مشکلی داره کدهایی که گذاشتید حذف کنید تا مشکل تون برطرف شه ولی اگه با دقت این کد هارو در قالب قرار بدید بدون شک مشکلی پیش نمیاد چون سایت خودم هم از همین کد استفاده میکنم

  3. حسین گفت:

    من دقیقا کدی که داده بودین آخر فایل اضافه کردم ، کار دیگه ای هم باید انجام بشه ؟ راهش چیه؟

    • دقت داشته باشید که نکاتی که در زیر کد گفته شده رو حتما بررسی کنید مجددا همین کدهارو در آخر فایل functions.php قرار بدید منتها حواستون باشه قبل از اینکه این کدهارو قرار بدید آخر کدهای فایل فانکشن شما باید حتما با ?> خاتمه داشته باشه اگر نداشت اضافه کنید و سپس این کدهارو قرار بدید

  4. احمد گفت:

    با سلام
    من ۱ فیلد رو اضافه کردم، حالا میخوام فیلد دوم رو اضافه کنم، باید کدوم قسمت از کد رو دوباره کپی کنم لطفا راهنمایی کنید مهم هست.
    با تشکر از سایت خوبتون