- 1,694 بازدید
- بدون نظر
سلام ، قرار هستش در این مقاله از ایکس اسکریپت کدهای اضافه کردن فیدهای دلخواه مثل شماره موبایل ، آدرس و … به قسمت پرداخت افزونه 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} استفاده کنید.
من خودم ازین کدها یجا استفاده کردم ۴ تا قیلد اضافه کردم و ۳ تاشونو الزامی کردم هیچ مشکلی نداره ، اگر باز مشکلی بود بفرمایید راهنمایی کنم ، یا حق
