M.Javad 684 ارسال شده در اسفند 93 گزارش بازنشر ارسال شده در اسفند 93 سلام.من میخوام در صفحه checkout افزونه EDD علاوه بر فیلد های نام و نام خانوادگی و ایمیل چندتا فیلد سفارشی دیگه هم اضافه کنم مثل آدرس کد پستی شماره تماس و ...آیا برای این کار افزونه ای هست یا باید کد بزاریم؟!اگه کد هست لطفا بزراین تا استفاده کنیمممنون نقل قول لینک به ارسال
Parsa 23463 ارسال شده در اسفند 93 گزارش بازنشر ارسال شده در اسفند 93 <?php// output our custom field HTMLfunction pippin_edd_custom_checkout_fields() {?><p id="edd-phone-wrap"><label class="edd-label" for="edd-phone"><?php _e('Contact Number', 'pippin_edd'); ?></label><span class="edd-description"><?php _e( 'Enter your phone number so we can get in touch with you.', 'pippin_edd' ); ?></span><input class="edd-input" type="text" name="edd_phone" id="edd-phone" placeholder="<?php _e('Contact Number', 'pippin_edd'); ?>" value=""/></p><p id="edd-phone-wrap"><label class="edd-label" for="edd-company"><?php _e('Company Name', 'pippin_edd'); ?></label><span class="edd-description"><?php _e( 'Enter the name of your company.', 'pippin_edd' ); ?></span><input class="edd-input" type="text" name="edd_company" id="edd-company" placeholder="<?php _e('Company Name', 'pippin_edd'); ?>" value=""/></p><?php}add_action('edd_purchase_form_user_info', 'pippin_edd_custom_checkout_fields');// check for errors with out custom fieldsfunction pippin_edd_validate_custom_fields($valid_data, $data) {if( empty( $data['edd_phone'] ) ) {// check for a phone numberedd_set_error( 'invalid_phone', __('Please provide your phone number.', 'pippin_edd') );}if( empty( $data['edd_company'] ) ) {// check for a phone numberedd_set_error( 'invalid_company', __('Please provide a company name.', 'pippin_edd') );}}add_action('edd_checkout_error_checks', 'pippin_edd_validate_custom_fields', 10, 2);// store the custom field data in the payment metafunction pippin_edd_store_custom_fields($payment_meta) {$payment_meta['phone'] = isset( $_POST['edd_phone'] ) ? sanitize_text_field( $_POST['edd_phone'] ) : '';$payment_meta['company'] = isset( $_POST['edd_company'] ) ? sanitize_text_field( $_POST['edd_company'] ) : '';return $payment_meta;}add_filter('edd_payment_meta', 'pippin_edd_store_custom_fields');// show the custom fields in the "View Order Details" popupfunction pippin_edd_purchase_details($payment_meta, $user_info) {$phone = isset( $payment_meta['phone'] ) ? $payment_meta['phone'] : 'none';$company = isset( $payment_meta['company'] ) ? $payment_meta['company'] : 'none';?><li><?php echo __('Phone:', 'pippin_edd') . ' ' . $phone; ?></li><li><?php echo __('Company:', 'pippin_edd') . ' ' . $company; ?></li><?php}add_action('edd_payment_personal_details_list', 'pippin_edd_purchase_details', 10, 2);https://easydigitaldownloads.com/docs/custom-checkout-fields/ 1 نقل قول لینک به ارسال
M.Javad 684 ارسال شده در اسفند 93 مالک گزارش بازنشر ارسال شده در اسفند 93 مرسی داداش خودشه فقط اگه بخوام قسمت نشانی textarea بزارم باید داخل input رو تغییر بدم فقط؟ نقل قول لینک به ارسال
Parsa 23463 ارسال شده در اسفند 93 گزارش بازنشر ارسال شده در اسفند 93 بله فقط تگ اینپوت رو تغییر بدیدو نام رو هم تنظیم کنید 1 نقل قول لینک به ارسال
M.Javad 684 ارسال شده در اسفند 93 مالک گزارش بازنشر ارسال شده در اسفند 93 بله فقط تگ اینپوت رو تغییر بدیدو نام رو هم تنظیم کنیدممنون اینم اوکی شد فقط چیزی که هست من نمیخوام این 3تا فیلد آخر اجباری باشه چون من هم محصولات دانلودی دارم هم پستی میخوام یا این سه تا فیلد اختیاری باشه که خب من required رو از توی کلاس هاشون حذف کردم ولی بازم اجباریهیا اینکه یه کاری کنم که این سه تا فیلد فقط برای محصولات پستی نمایش داده بشه و فکرم اینه که با یه دستور زمینه دلخواه شرطی استفاده کنم که اگر یه مقداری پر بشه این سه قسمت نمایش داده بشه.حالا به نظرتون کدومش بهتره؟! نقل قول لینک به ارسال
Parsa 23463 ارسال شده در اسفند 93 گزارش بازنشر ارسال شده در اسفند 93 توابع مشخص هست بخوانیدبخش خطاها// check for errors with out custom fieldsfunction pippin_edd_validate_custom_fields($valid_data, $data) {if( empty( $data['edd_phone'] ) ) {// check for a phone numberedd_set_error( 'invalid_phone', __('Please provide your phone number.', 'pippin_edd') );}if( empty( $data['edd_company'] ) ) {// check for a phone numberedd_set_error( 'invalid_company', __('Please provide a company name.', 'pippin_edd') );}}add_action('edd_checkout_error_checks', 'pippin_edd_validate_custom_fields', 10, 2); 1 نقل قول لینک به ارسال
M.Javad 684 ارسال شده در اسفند 93 مالک گزارش بازنشر ارسال شده در اسفند 93 یعنی نظر شما اینه این فیلدارو اختیاری بزارم؟!بهتر نیست یه شرطی گذاشت که فقط برای محصولات پستی نمایش داده بشه؟! نقل قول لینک به ارسال
M.Javad 684 ارسال شده در اسفند 93 مالک گزارش بازنشر ارسال شده در اسفند 93 (ویرایش شده) // output our custom field HTMLif(get_post_meta($post->ID, 'posti', true)){function tcwf_edd_custom_checkout_fields() {?> <p> <label class="edd-label" for="edd-phone"><?php _e('شماره تماس', 'edd'); ?></label> <input class="edd-input" type="text" name="edd_phone" id="edd-phone" placeholder="<?php _e('شماره موبایل خود را وارد کنید', 'edd'); ?>" value=""/> </p> <p> <label class="edd-label" for="edd-company"><?php _e('استان/شهرستان', 'edd'); ?></label> <input class="edd-input" type="text" name="edd_company" id="edd-company" placeholder="<?php _e('نام استان و شهرستان خود را وارد کنید', 'edd'); ?>" value=""/> </p> <p> <label class="edd-label" for="edd-address"><?php _e('Address', 'edd'); ?></label> <textarea class="edd-input" type="text" name="edd_address" height="300px" maxlength="2000" id="edd-address" placeholder="<?php _e('آدرس دقیق پستی محل سکونت خود را وارد کنید.(آدرس خانه-شماره پلاک و کد پستی)', 'edd'); ?>" value=""></textarea> </p> <?php}add_action('edd_purchase_form_user_info', 'tcwf_edd_custom_checkout_fields');//check for errors with out custom fieldsfunction tcwf_edd_validate_custom_fields($data, $post_data) { if(!isset($post_data['edd_phone']) || $post_data['edd_phone'] == '') { // check for a phone number edd_set_error( 'invalid_phone', __('شماره موبايل را صحيح وارد کنيد', 'tcwf_edd') ); } if(!isset($post_data['edd_company']) || $post_data['edd_company'] == '') { // check for a valid company name edd_set_error( 'invalid_company', __('شما بايد نام شهر را صحيح وارد کنيد', 'tcwf_edd') ); } if(!isset($post_data['edd_address']) || $post_data['edd_address'] == '') { // check for a valid address edd_set_error( 'invalid_address', __('آدرس کامل محل سکونت را به طور دقيق وارد کنيد', 'tcwf_edd') ); }}add_action('edd_checkout_error_checks', 'tcwf_edd_validate_custom_fields', 10, 2 );// store the custom field data in the payment metafunction tcwf_edd_store_custom_fields($payment_meta) { $payment_meta['phone'] = isset($_POST['edd_phone']) ? $_POST['edd_phone'] : ''; $payment_meta['company'] = isset($_POST['edd_company']) ? $_POST['edd_company'] : ''; $payment_meta['address'] = isset($_POST['edd_address']) ? $_POST['edd_address'] : ''; return $payment_meta;}add_filter('edd_payment_meta', 'tcwf_edd_store_custom_fields');// show the custom fields in the "View Order Details" popupfunction tcwf_edd_purchase_details($payment_meta, $user_info) { $phone = isset($payment_meta['phone']) ? $payment_meta['phone'] : 'none'; $company = isset($payment_meta['company']) ? $payment_meta['company'] : 'none'; $address = isset($payment_meta['address']) ? $payment_meta['address'] : 'none'; ?> <li><?php echo __('شماره تماس :', 'tcwf') . ' ' . $phone; ?></li> <li><?php echo __('استان/شهرستان :', 'tcwf') . ' ' . $company; ?></li> <li><?php echo __('آدرس :', 'tcwf') . ' ' . $address; ?></li> <?php}add_action('edd_payment_personal_details_list', 'tcwf_edd_purchase_details', 10, 2);}?>چیزی که من متوجه شدم اینه که زمینه دلخواه رو باید توی قسمت ثبت محصول خود افزونه قرار بدیم نه توی افزودن نوشته.چون موقع ثبت میره به یه صفحه دیگه و دیگه شرط عمل نمیکنه.حالا مشکل اینجاست که توی ثبت محصول در قسمت تنظیمات صفحه گزینه زمینه دلخواه وجود نداره.آیا راهی هست که تو این بخش هم افزودن زمینه دلخواه اضافه بشه؟! ویرایش شده اسفند 93 توسط M.Javad نقل قول لینک به ارسال
M.Javad 684 ارسال شده در اسفند 93 مالک گزارش بازنشر ارسال شده در اسفند 93 نه اینم امتحان کردم نشددوستان کسی راه حل دیگه ای پیشنهاد نداره؟! نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .