WooCommerce Güncelleme: Güvenli ve Kapsamlı Kılavuzumuz
Son zamanlarda Delicious Brains HQ'da çok şey yaşadık; bunu ve bunu serbest bırakmak, yeni ürünler planlamak ve genellikle sınırları zorlamak. Ancak bu, bazı şeylerin geride kaldığı anlamına geliyor ve bir süredir lezzetlibrains.com'da WooCommerce'i güncellemedik! 😱
Site artık ana önceliğim olduğu için 3.1.2'den 3.3.5'e güncellemek bana geldi. WooCommerce, işimizin ayrılmaz bir parçası olan büyük bir 'ol' e-ticaret eklentisidir (büyük bir abonelik eklentisi, özel API ve çok sayıda ısmarlama kod ile birlikte), bu nedenle herhangi bir güncelleme yapmak korkutucu, soğuk ter tetikleyen bir görevdir.
Bu yüzden, gelecekte size yardımcı olacağını umduğum ve bir dahaki sefere güncelleme gerektiğinde kendim kullanacağım bir kaynak olacak olan WooCommerce'i güncelleme rehberime geçmeme izin verin.
Güçlü Bir Temel
Birinci adım, canlı sitenize giriş yapın ve güncelle'ye basın. şaka!
'Önemli eklentileri hiçbir zaman doğrudan canlı olarak güncellemeyin', burada tekrar etmeye değer, yaygın olarak benimsenen bir mantradır:
Eklentileri test etmeden önce canlı olarak güncellemeyin .
Bunları test etmek için her zaman sitenin bir kopyasını kullanın – böylece sitede güncellemeler yapabilir, test edebilir ve nihayetinde işlerin kötüye gitmesi umurunuzda olmaz.
Sitenin yerel bir kopyası üzerinde geliştirme yapıyoruz ve ayrıca, sitenin yeni bir sürümünü döndürmek için git ile kontrol edilen ve Composer ile yönetilen site sürümüne sahip olduğumuz için kurulumu oldukça basit olan kullanıcı testi için hazırlama kopyasına sahibiz. git clone ... ve composer install kadar basittir. Pekala, o kadar basit değil, tüm WordPress sitelerinde olduğu gibi, veritabanını ve medya kitaplığını göz önünde bulundurmanız gerekir. Neyse ki bizim için bunu yapan birkaç eklenti biliyoruz!
WP Migrate DB Pro, güncelleme yapmadan önce canlı veritabanının tam bir kopyası üzerinde çalışabilmemiz için canlı veritabanının yeni bir kopyasını indirmeyi çocuk oyuncağı haline getiriyor. Eklentiyi kullanarak basit bir dışa aktarma bile, yerel bir kurulum için başlangıç noktası olarak kullanışlıdır. Ayrıca medya kitaplığımızı S3'e boşaltmak için WP Boşaltma S3 kullanıyoruz, bu, tüm görüntülerin yerel sitemizde bile CloudFront'tan sunulduğu anlamına gelir ve wp-content/uploads dizinimizi FTP'lemek veya kullanmak için endişelenmemize gerek yoktur. Dosyaları yerel olarak almak için WP Migrate DB Pro Media Files eklentisi.
Bir e-ticaret sitesinde çalışırken dikkate alınması gereken birkaç önemli nokta daha vardır.
Çevre
Geçmişte, sitenin hangi ortamda çalıştığını belirlemek için WP_DEBUG sabiti değerini kullandım, ancak bu, canlı sitemiz için etkinleştirdiğimiz için çok basit, böylece proaktif olarak meydana gelen hataları yakalayabilir ve düzeltebiliriz. Üç ortamımızın her birinin ayrı konfigürasyona ihtiyacı var (örneğin, veritabanı adı ve kimlik bilgileri), bu nedenle wp-config.php doğru ortam yapılandırmasını yüklüyoruz (veritabanı kimlik bilgilerini git'in dışında tutuyoruz) ve bazı yararlı ortamlar oluşturmak için koşulluyu kullanabiliriz. sabitler:
if ( file_exists( dirname( __FILE__ ) . '/live-config.php' ) ) { define( 'WP_LOCAL_DEV', false ); define( 'DBI_STAGING_SITE', false ); include dirname( __FILE__ ) . '/live-config.php'; } elseif ( file_exists( dirname( __FILE__ ) . '/staging-config.php' ) ) { define( 'WP_LOCAL_DEV', false ); define( 'DBI_STAGING_SITE', true ); include dirname( __FILE__ ) . '/staging-config.php'; } else { define( 'WP_LOCAL_DEV', true ); define( 'DBI_STAGING_SITE', false ); include dirname( __FILE__ ) . '/local-config.php'; }
Bu, yalnızca belirli ortamlar için bazı kodlar yükleyebileceğimiz anlamına gelir. Örneğin, Stripe için test kredi kartı numaralarını yalnızca geliştirme veya hazırlama sitelerinde ödeme formumuza ekliyoruz:
<?php if ( WP_LOCAL_DEV || DBI_STAGING_SITE ) : ?> <div class="test-credit-cards"> 4242424242424242<br /> 5555555555554444<br /> 378282246310005<br /> </div> <?php endif; ?>
E-posta
WooCommerce ve e-ticaret süreçlerimizin özelliklerini test ederken, örneğin otomatik lisans yenilemeleri, müşteriler için yeni siparişler oluşturulur ve e-postalar gönderilir. E-postaları test etmek ve içeriği kontrol etmek istiyoruz, ancak bunların müşterilere gerçekten gönderilmesini istemiyoruz. Geçmişte birkaç yaklaşım kullandık, ancak en basiti muhtemelen e-posta adresini ele geçirmek To yerel bir filtredir:
function my_site_hijack_all_mail( $args ) { $args['to'] = '[email protected]'; return $args; } add_filter( 'wp_mail', my_site_hijack_all_mail, 100 );
Bu yaklaşımın dezavantajı, e-postaların Mailgun kullanılarak gönderilmeye devam etmesidir; bu, yalnızca yerel testler için aylık e-posta sınırımızı boşa harcar. Daha iyi bir yaklaşım, Mailtrap gibi ücretsiz bir hizmet kullanmak ve ardından bunu test sitesindeki bir mu-plugin'e eklemektir:
add_action( 'phpmailer_init', 'mailtrap' ); function mailtrap( $phpmailer ) { $phpmailer->isSMTP(); $phpmailer->Host = 'smtp.mailtrap.io'; $phpmailer->SMTPAuth = true; $phpmailer->Port = 2525; $phpmailer->Username = '{mailtrap username}'; $phpmailer->Password = '{mailtrap password}'; }
Mailtrap, e-postaları kontrol etmeniz için size çevrimiçi bir gelen kutusu sunar:

Ödeme Ağ Geçitleri
Sitede hem PayPal Express hem de Stripe ödeme ağ geçitlerini kullanıyoruz ve sitedeki yeni özelliklerin test edilmesinin bir parçası olarak rutin olarak test siparişleri, yükseltmeler ve yenilemeler gerçekleştiriyoruz. Tabii ki canlı ağ geçidinden geçmelerini istemiyoruz, bu yüzden WooCommerce ayarlarında PayPal Sandbox kimlik bilgilerimizi ve Stripe test anahtarlarımızı yapılandırdık.
Ayrıca, site ortamı için doğru ödeme ağ geçidi modunun kullanılmasını sağlayan bir mu-eklentisinde bazı ekstra kodlarımız var:
// Always use PayPal Express test mode when on dev or staging add_filter( 'option_woocommerce_paypal_express_settings', function( $value ) { if ( ! WP_LOCAL_DEV && ! DBI_STAGING_SITE ) { return $value; } $value['environment'] = 'test'; return $value; }); // Always use PayPal test mode when on dev or staging // The standard PayPal gateway controls IPN and other URLs even if using PayPal Express gateway. add_filter( 'option_woocommerce_paypal_settings', function( $value ) { if ( ! WP_LOCAL_DEV && ! DBI_STAGING_SITE ) { return $value; } $value['testmode'] = 'yes'; return $value; }); // Always use Stripe test mode when on dev or staging add_filter( 'option_woocommerce_stripe_settings', function( $value ) { if ( ! WP_LOCAL_DEV && ! DBI_STAGING_SITE ) { return $value; } $value['testmode'] = 'yes'; return $value; });
ne değişti
WooCommerce'i yerel olarak yükseltmeden önce, neyin değiştiğini ve sitenizi nasıl etkileyebileceğini anlamak için değişiklik günlüğünü ve ekipten gelen diğer gönderileri okumak iyi bir fikirdir.
WooCommerce ayrıca eklentiyi güncellemek için harika bir rehbere sahiptir.
WooCommerce'i Composer ile yönettiğimiz ve git'te saklamadığımız için, güncelleme sırasında eklenti dosyalarının gerçek bir farkını görmek daha zordur. Bu nedenle, şu anda sahip olduğunuz sürümün eklenti zip dosyasını indirmeniz yararlı olabilir, sıkıştırmayı açın ve git init && git add . && git commit -m “Initial” git init && git add . && git commit -m “Initial” . Ardından, eklentinin en son sürümünü bu dizinin üstüne indirin ve açın ve dosyalarda tam olarak nelerin değiştiğini incelemek için bir diff aracı kullanın. Çoğunlukla bu aşırıya kaçıyor, ancak bilmek için iyi bir seçenek.
uyumluluk
Bir sonraki adım, ÜRETİM OLMAYAN sitenizdeki eklentiyi güncellemektir. Güncelledikten sonra, dikkate alınması gereken başka şeyler var.
Tema
Temanız başka bir geliştirici tarafından oluşturulmuşsa, umarım bunun için bir güncelleme mevcuttur. Veya bizim gibi, temanızdaki bazı temel şablon dosyalarını geçersiz kıldıysanız, o zaman ayarlar ekranından bunların güncel olup olmadığını kontrol etmelisiniz wp-admin/admin.php?page=wc-status :

Herhangi bir şablon güncel değil olarak işaretlenirse, neyin değiştiğini görmek için çekirdek şablon dosyalarını incelemeniz ve ardından aynı değişiklikleri uygun olduğunda temanızın şablon dosyalarına uygulamanız gerekir.
Eklentiler
WooCommerce çalıştıran çoğu site, işlevselliğini geliştirmek için bazı eklentiler kuracaktır. Ödeme ağ geçitleri, yazılım lisans anahtarlarını yönetme ve fatura yazdırma gibi işlevler eklemek için bir dizi başka eklenti çalıştırıyoruz. Bu eklentiler WooCommerce çekirdeğine bağlıdır ve bu nedenle WooCommerce ile uyumluluğu korumak için gerektiğinde güncellenmeleri gerekir. Aynı durum sayfası, gerektiğinde güncelleme yapabilmeniz için hangi eklentilerin uyumlu olmadığını bilmenizi sağlar.
Veri tabanı
WooCommerce'in çoğu sürümü, veritabanında bir güncelleme gerektirir ve bu, eklentiyi güncelledikten sonra istenir. Test veritabanınızda başarılı bir şekilde çalıştığından emin olmak için bunu test edin ve WooCommerce verilerine erişen herhangi bir özel kodun hala beklendiği gibi çalıştığından emin olun. Ürün üst/alt ilişkilerinin sürüm 3.0'da tanıtılan veritabanında nasıl saklandığına ilişkin değişikliği karşılamak için özel API'mizi ve diğer kod parçalarını güncellerken kesinlikle biraz eğlendik.
Test yapmak
Tüm güncellemeler yapıldıktan sonra, bir WooCommerce güncellemesinde yer alan birçok hareketli parçadan biri tarafından işlerin bozulmadığını test etmemiz gerekiyor. Test yaklaşımı, çalıştırdığınız siteye özel olacaktır, bu nedenle, müşterilerin sitenizde gerçekleştireceği eylemlerin tümü olmasa da çoğunluğu taklit eden test edilmesi gereken senaryoların bir listesini yazmak en iyisidir. Bizim için buna şunlar dahildir:
- PayPal ile satın alın
- Bu siparişin Stripe aracılığıyla kredi kartıyla yükseltilmesi
- Stripe üzerinden kredi kartıyla yeni satın alma
- Bir lisansın otomatik olarak yenilenmesi
- Eklenti ziplerini sipariş ekranlarından ve müşteri alanından indirme
Bu hemen hemen sitenin ana önemli işlevleridir, ancak test edilecek diğer yönler şunları içerebilir:
- Kupon uygulamak
- Çapraz satış kuponlarını test etme
- Kuponları yöneticide yönetme
- siparişleri geri ödeme
- Yeni ürünler ekleme
wp-config.php hataları wp-content/debug.log kaydedecek şekilde ayarlandığından emin olun:
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);
Siteyi test ederken, günlüğü izleyin ve güncellenmesi gereken kod alanlarını veya düzeltilmesi gereken diğer eklentileri belirlemenize yardımcı olacak önemli hatalar, bildirimler, uyarılar ve kullanımdan kaldırılmış bildirimler olup olmadığını izleyin.
Oldukça geniş yapılacaklar listemdeki işlerden biri, gelecekte zaman kazanmak için bunun için bazı otomatik testler ayarlamak ve muhtemelen bunların sürekli olarak evreleme üzerinde çalışmasını sağlamak. Bunu başka bir yazıda daha derine inebilirim.
Tetiği çekmek
Bir kez mutlu olduğunuzda, test sitenizde, ideal olarak yerel olarak ve hazırlamada her şey beklendiği gibi çalışıyor, ardından güncellemeyi canlı olarak gerçekleştirme zamanı. Bunu yapmadan önce, işler ters giderse bir geri yükleme noktanız olması için, başlamadan önce canlı veritabanının (ve sürüm kontrolünde yönetilmiyorlarsa site dosyalarının) bir yedeğini almak her zaman iyi bir fikirdir.
Güncellemeye basın, composer update wpackagist-plugin/woocommerce veya normal şekilde dağıtın. Ardından oturum açın ve gerektiğinde gösterge tablosundan veritabanı yükseltmesini başlatın. Önbellekleri temizleyin ve ardından sitenizi ön uçtan ziyaret edin ve etrafta dolaşın. Fiyatlandırma sayfasından sepete ürün eklemeye kadar bir müşteri yolculuğunu test edin. Daha da iyisi, her şeyin beklendiği gibi çalışıp çalışmadığını iki kez kontrol etmek için bir deneme satın alma işlemi yapmak (veya daha sonra iade etmek) için %100 kupon kullanın.
Genellikle tüm ekibe, işlenemeyen siparişlerle veya sitedeki diğer garip davranışlarla ilgili herhangi bir destek bileti arayışında olabilmeleri için bir güncellemenin henüz dağıtıldığını bildiririz.
Toplama
Bir WordPress sitesini yönetmenin kolay olduğunu kim söyledi?! Şaka değil, özellikle de karışıma WooCommerce gibi eklentiler eklediğinizde. Ancak umarım bu kılavuz, bir dahaki sefere güncelleme sürecinde size biraz güven verir, tekrar okuyacağımı biliyorum!
Güncellemeleri daha az stresli hale getirmek için hangi süreçleri kullanıyorsunuz? WooCommerce siteleriniz için herhangi bir otomatik test yapıyor musunuz? Yorumlarda bize bildirin.
ev borcu WordPress sitesi