WooCommerce Ödeme Ağ Geçidi Nasıl Oluşturulur
Yayınlanan: 2021-04-26Özel ödeme seçeneğinizi kabul eden WooCommerce Ödeme Ağ Geçidi oluşturmak ister misiniz? Bu eğitimde, müşterilerinizin bu özel WooCommerce ödeme ağ geçidi üzerinden ödeme yapmasına izin vermek için WooCommerce'de nasıl Ödeme Ağ Geçidi Oluşturacağınızı kısaca göstermek istiyorum.
Kendi özel ödeme ağ geçidinizi oluşturmak mümkündür. Bunu başarmanın 2 yolu vardır. Bir eklenti veya özel kod kullanabilirsiniz.
Ancak, eklentilerin sitenizi şişireceğini unutmamak önemlidir. Bu yüzden özel bir kod parçacığı kullanacağız.
Yeni başlayanların bu yöntemi kullanmasına izin vermek için her adımı ayrıntılı olarak tartışacağız.
WooCommerce Ödeme Ağ Geçidi Nasıl Oluşturulur
Bu gönderide, yeni bir ödeme ağ geçidi eklemek için bir eklenti oluşturacağız. Bu, bunu yapmak için programlama becerilerine sahip olmanız gerektiği anlamına gelir.
Bir WooCommerce sınıfını genişleteceğiz. WooCommerce bize ödeme ağ geçidi veya e-posta sınıfları gibi birkaç temel sınıf sağlar.
Bu sınıflar, kendi işlevselliğinizi eklemek için genişletilebilir, bu da geliştirmede zaman kazandırır. Ayrıca eklentinizin standart bir şekilde çalışmasını sağlar.
WC_Payment_Gateway Sınıfı
WC_Payment_Gateway sınıfı, sipariş toplamlarını alma yeteneği veya teşekkür sayfası URL'si gibi ödeme yöntemlerine özgü yapı ve işlevler sağlamak için bunu genişletir.
Bu sınıfı genişletirsek yapıdan yararlanabiliriz. Bu, başlığı ve açıklamayı almak ve ödeme sayfasında görüntülemek de dahil olmak üzere bazı işlevleri bizim için halledecektir.
WooCommerce'deki tüm ödeme ağ geçitlerinin WC_Payment_Gateway sınıfını genişleterek başlayacağını unutmamak önemlidir.
İşte izlemeniz gereken adımlar:
1. WooCommerce'in Aktif olup olmadığını kontrol edin
Bir WooCommerce sınıfını genişleteceğimiz için aktif olup olmadığını kontrol etmemiz gerekiyor:
// Make sure WooCommerce is active if ( ! in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) return;
2. Çocuğunuzun Sınıfını Oluşturun
Bunu yapmak için, önce bunu bir init işlevine sarmamız ve varsayılan öncelikten sonra plugins_loaded'a bağlamamız gerekir.
WooCommerce'in aktif olup olmadığını kontrol ettikten sonra sınıfımızı WooCommerce çekirdeğinden sonra yüklüyoruz. Bu, onu ölümcül hatalara karşı ikincil bir kontrol yapar.
Ayrıca WC_Payment_Gateway sınıfının kullanılabilir olmasını sağlar. o bir sınıfı genişletirseniz, şu biçimi izleyeceksiniz:
class My_Child_Class, The_Parent_Class'ı genişletir { }
Eklentimizde bu şöyle görünecek:
/** * Offline Payment Gateway * @class WC_Gateway_Offline * @extends WC_Payment_Gateway * @version 1.0.0 * @package WooCommerce/Classes/Payment * @author Njengah */ add_action( 'plugins_loaded', 'wc_offline_gateway_init', 11 ); function wc_offline_gateway_init() { class WC_Gateway_Offline extends WC_Payment_Gateway { // You plugin code starts here } // end \WC_Gateway_Offline class }
3. Ağ Geçidini İnşa Edin
Sınıfımız bittiği için __construct() fonksiyonumuzu oluşturmamız gerekiyor. Bu, sınıfımıza dahil etmemiz gereken değişkenleri sağlar.
Gerekli olan değişkenler şunlardır:
- $bu->kimlik
- $bu->simge
- $this->has_fields = doğru veya yanlış (bool)
- $bu->yöntem_başlığı
- $bu->method_description
Değişkenler ayarlandıktan sonra, kurucunun birkaç başka fonksiyona ihtiyacı olacaktır.
Form alanları, init_form_fields() işlevinde ayarlanacaktır. Bu işlev, ağ geçidini etkinleştirme ve başlık ekleme gibi tüm ayar alanlarını ekler.
$this->init_form_fields(); $this->init_settings();
4. Form Alanlarını Başlatın
Bu bölümde, ödeme ağ geçidimiz için form alanlarını ayarlamak için bir init_form_fields() işlevi oluşturacağız.
İşlev, üst sınıfta hiçbir şey yapmaz, ancak geçersiz kılmadığınız takdirde önemli hatalar olmamasını sağlar.
Ancak, alt sınıfımızda ona bazı işlevler vereceğiz.
Eklememiz gereken temel alanlar etkin başlık ve açıklamadır.
/** * Initialize Gateway Settings Form Fields */ public function init_form_fields() { $this->form_fields = apply_filters( 'wc_offline_form_fields', array( 'enabled' => array( 'title' => __( 'Enable/Disable', 'wc-gateway-offline' ), 'type' => 'checkbox', 'label' => __( 'Enable Offline Payment', 'wc-gateway-offline' ), 'default' => 'yes' ), 'title' => array( 'title' => __( 'Title', 'wc-gateway-offline' ), 'type' => 'text', 'description' => __( 'This controls the title for the payment method the customer sees during checkout.', 'wc-gateway-offline' ), 'default' => __( 'Offline Payment', 'wc-gateway-offline' ), 'desc_tip' => true, ), 'description' => array( 'title' => __( 'Description', 'wc-gateway-offline' ), 'type' => 'textarea', 'description' => __( 'Payment method description that the customer will see on your checkout.', 'wc-gateway-offline' ), 'default' => __( 'Please remit payment to Store Name upon pickup or delivery.', 'wc-gateway-offline' ), 'desc_tip' => true, ), 'instructions' => array( 'title' => __( 'Instructions', 'wc-gateway-offline' ), 'type' => 'textarea', 'description' => __( 'Instructions that will be added to the thank you page and emails.', 'wc-gateway-offline' ), 'default' => '', 'desc_tip' => true, ), ) ); }
5. Ödemeyi İşleyin
Bu, bir ödeme ağ geçidi oluşturmaya gelince en önemli bölümdür. WooCommerce'e hangi durumun olması gerektiğini ve müşterilerin bu durum kullanıldıktan sonra nereye gittiğini söyleyen, siparişin işlenmesini işlemek için bir işlev eklememiz gerekiyor:
public function process_payment( $order_id ) { $order = wc_get_order( $order_id ); // Mark as on-hold (we're awaiting the payment) $order->update_status( 'on-hold', __( 'Awaiting offline payment', 'wc-gateway-offline' ) ); // Reduce stock levels $order->reduce_order_stock(); // Remove cart WC()->cart->empty_cart(); // Return thankyou redirect return array( 'result' => 'success', 'redirect' => $this->get_return_url( $order ) ); }
6. Alınan Siparişe ve E-postalara Ödeme Ağ Geçidi Bilgilerini Ekleyin
Eklediğimiz ağ geçidi, ödemeyi tamamlamak için daha fazla talimat gerektiriyor. Bu talimatların, Thankyou_page() ve email_instructions() saplama yöntemlerini kullanarak hem teşekkür sayfasında hem de sipariş e-postalarında gösterildiğinden emin olmamız gerekir.
/** * Output for the order received page. */ public function thankyou_page() { if ( $this->instructions ) { echo wpautop( wptexturize( $this->instructions ) ); } } /** * Add content to the WC emails. * * @access public * @param WC_Order $order * @param bool $sent_to_admin * @param bool $plain_text */ public function email_instructions( $order, $sent_to_admin, $plain_text = false ) { if ( $this->instructions && ! $sent_to_admin && 'offline' === $order->payment_method && $order->has_status( 'on-hold' ) ) { echo wpautop( wptexturize( $this->instructions ) ) . PHP_EOL; } }
7. WooCommerce Ödeme Ağ Geçitlerine Ekle
Son adım, ödeme ağ geçidinin WooCommerce > Ayarlar > Ödeme altında mevcut olduğundan emin olmaktır.
Bize mevcut tüm ağ geçitlerinin dizisini veren woocommerce_payment_gateways filtresini kullanacağız. Bu, ağ geçidimizi bu diziye ekleyeceğimiz ve ardından diziyi ağ geçidimiz eklenmiş olarak döndüreceğimiz anlamına gelir.
function wc_offline_add_to_gateways( $gateways ) { $gateways[] = 'WC_Gateway_Offline'; return $gateways; } add_filter( 'woocommerce_payment_gateways', 'wc_offline_add_to_gateways' );
Çözüm
Özel bir ödeme ağ geçidi eklemek için yapmanız gereken tek şey bu. “Çek” ağ geçidinin işlevselliğini basitçe klonladık.
Bir ödeme işlemcisi ile entegrasyon yapıyorsanız, ödeme işlemcisinden gönderme ve alma bilgilerini dahil etmeniz gerektiğini unutmamak önemlidir.
Bu süreç çok karmaşıksa, kalifiye bir geliştirici kiralayabilirsiniz. Bu, sitenizi bozmamanızı sağlayacaktır.
Benzer Makaleler
- Ödemeden Sonra WooCommerce Yönlendirme: Özel Teşekkür Sayfasına Yönlendir
- Çıkış Yaptıktan Sonra WooCommerce Yönlendirmesi [Ultimate Guide]
- WooCommerce Ürün Sayfaları Nasıl Özelleştirilir
- WooCommerce'de Minimum Harcama ile Ücretsiz Gönderim Nasıl Kurulur
- WooCommerce Ödeme Ağ Geçidi Simgeleri Nasıl Değiştirilir
- WooCommerce Bitcoin Checkout Nasıl Kurulur
- WooCommerce Fatura Ödeme Sayfası Nasıl Eklenir
- URL'ye Dayalı Aktif Gezinme Sınıfı Nasıl Eklenir
- WooCommerce ile Stripe Nasıl Entegre Edilir?
- Ödeme Düğmesi Nasıl Kaldırılır WooCommerce
- Ücretsiz Mpesa WooCommerce Ödemesine Nasıl Gönderilir
- WooCommerce Ödeme Sayfasında PayPal Simgesini Gizleme
- Altbilgiye WooCommerce Ödeme Simgeleri Nasıl Eklenir [HTML]
- WooCommerce Ödeme Sayfasında PayPal Simgesi Nasıl Değiştirilir
- WooCommerce'de Mağaza Sayfasına Arama Nasıl Eklenir
- WooCommerce'de İstek Listesi Nasıl Eklenir
- Kullanıcının WordPress'te Oturum Açmış Olup Olmadığı Nasıl Kontrol Edilir
- WooCommerce Ödeme Seçeneklerini Ödemeden Nasıl Kaldırılır
- WooCommerce'de Çıkışta Sepet Nasıl Temizlenir
- Ödeme Uç Noktaları Nasıl Değiştirilir WooCommerce