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

افزودن فیلدهای دلخواه به افزونه EDD

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

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

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

  • فیلد شماره موبایل رو به قسمت اطلاعات پرداخت EDD اضافه کنیم
  • فیلد شماره موبایل رو الزامی (required) کنیم
  • پیام خطایی در صورت تکمیل نشدن این فیلد نمایش داده بشود
  • اطلاعات این فیلد اضافی در پنل وردپرس (payment meta) ذحیره بشود
  • در قسمت جزئیات خرید این اطلاعات نمایش داده بشود
  • اضافه کردن شورت کد {phone} برای ارسال ایمیل اطلاع رسانی به مدیر و خریدار محصول
پیشنهاد بعدی  افزودن فیلد دلخواه در Edd با EDD custom checkout fields

برای این کار کدهای زیر رو به انتهای فایل 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 می تونید کپی کنید و بجای یک فیلد چندتا قیلد اضافه کنید.
  • 2 تا قسمت هستش که یکی فیلد رو الزامی می کنه و یکی باعث خطا نمایش داده بشه ، اونها رو بهش دقت کنید ، اگر می خواهید فیلد الزامی نباشه اونجا رو نباید به فیلدهاتون اضافه کنید.
  • به قسمت پیکربندی افزونه رفته و در قسمت ایمیل می تونید از شورت کد {phone} استفاده کنید.
پیشنهاد بعدی  تبدیل RIAL به ریال در افزونه EDD وردپرس

من خودم ازین کدها یجا استفاده کردم 4 تا قیلد اضافه کردم و 3 تاشونو الزامی کردم هیچ مشکلی نداره ، اگر باز مشکلی بود بفرمایید راهنمایی کنم ، یا حق

منبع مقاله

امتیاز شما از 1 تا 5
1 ستاره میدم به نوشته2 ستاره میدم به نوشته3 ستاره میدم به نوشته4 ستاره میدم به نوشته5 ستاره میدم به نوشته 11 رای
Loading...