هنگامی که در حال توسعه یک افزونه یا تم برای ووکامرس هستید، ممکن است از شما خواسته شود که روش پرداخت را برای انواع منطق دریافت کنید. به عنوان مثال در تغییر مسیر اخیرم پس از پرداخت ووکامرس توسعه افزونه ووکامرس ، من باید شرایطی را ایجاد کنم تا کاربران ووکامرس را پس از پرداخت بر اساس روش پرداختی که در پرداخت استفاده کردهاند تغییر مسیر دهم.
در چنین شرایطی نیاز است که شما به عنوان یک توسعه دهنده ووکامرس تابعی را ایجاد کنید که تمام روش پرداخت فعال شده را دریافت کرده و سپس آن را برای کاربران نمایش دهد تا در backend انتخاب کنند یا از آن در منطق خاصی استفاده کنند.
در مورد من، باید روشهای پرداخت را در یک لیست انتخابی کشویی نمایش دهم تا کاربر یکی از روشهای پرداخت را که برای شرایط اعمال میشود، انتخاب کند، همانطور که در تصویر زیر میبینید:
دریافت روش پرداخت ووکامرس
اگر به دنبال کد نحوه دریافت روش پرداخت در ووکامرس هستید، این یک آموزش خوب است تا به سرعت به شما ایده دهد که چگونه می توانید آن را انجام دهید. برای دریافت تمام روش های پرداخت باید از روش WC() و payment_gateways() استفاده کنید.
میتوانید این روشهای پرداخت را در یک متغیر ذخیره کنید و آرایهای را برگردانید که میتوانید پیش بروید و در قسمت انتخاب استفاده کنید. در زیر نمونه کد نحوه دریافت روش پرداخت در ووکامرس است.
/** * Get all payment methods */ function njengah_get_payment_method_options() { $gateways = WC()->payment_gateways->payment_gateways(); $options = array(); foreach ( $gateways as $id => $gateway ) { $options[$id] = $gateway->get_method_title(); } return $options; }
این تابع آرایهای از روشهای پرداخت موجود را برمیگرداند و میتوانید برای نمایش روشهای پرداخت به صورت کشویی به صورت زیر استفاده کنید:
/** * Display all payment methods in a select display drop down & save as post meta */ function njengah_display_payment_methods(){ $selected_payment_method = get_post_meta($post_id ,'njengah_payment_method', true); ?> <select name="njengah_payment_method" class="select_field"> <option selected="selected" disabled="disabled" value=" "><?php echo esc_attr( __( 'Select Payment Method' ) ); ?></option> <?php $paymentmethods = njengah_get_payment_method_options(); foreach ( $paymentmethods as $payment_id => $method_title ) { $option = '<option value="' . $payment_id . '" '; $option .= ( $payment_id == $selected_payment_method ) ? 'selected="selected"' : ''; $option .= '>'; $option .= $method_title ; $option .= '</option>'; echo $option; } ?> </select> <?php }
همانطور که می بینید من تابع اول را در تابع دوم فراخوانی می کنم تا روش های پرداخت را نمایش دهم و مقدار تابع اول را که شامل تمام روش های پرداخت است، جستجو می کنم.
شما همچنین باید بدانید که در این مورد من با استفاده از update_post_meta() ذخیره می کنم اما می توانید با استفاده از update_option()ر نیز ذخیره کنید.
نتیجه
در این آموزش، نحوه دریافت روش پرداخت در ووکامرس و نحوه نمایش روش های پرداخت را در لیست انتخابی کشویی توضیح داده ام. امیدوارم اکنون بتوانید این کد را گسترش دهید و دوباره از آن در پروژه خود استفاده کنید. اگر در مورد کد یا نحوه بهبود آن سوالی دارید، می توانید با ما تماس بگیرید