Μετάβαση στο περιεχόμενο

Ρυθμίσεις cookies

Επιλέξτε ανά κατηγορία ποια cookies επιτρέπετε. Μπορείτε να αλλάξετε την επιλογή σας οποιαδήποτε στιγμή μέσω των Ρυθμίσεων cookies στο κάτω μέρος κάθε σελίδας. Δήλωση απορρήτου

Απαραίτητα

Πάντα ενεργά

Χρειάζονται για τη σύνδεση, για να διατηρείται το καλάθι σας και για να θυμόμαστε τις επιλογές σας. Είναι πάντα ενεργά.

Ποια cookies;
  • weboke_sessie, weboke_klant, weboke_remember: η συνεδρία σας και η παραμονή σε σύνδεση
  • weboke_basket: το καλάθι σας
  • wkBtwIncl: εμφάνιση τιμών με ή χωρίς ΦΠΑ
  • wok_cookies: η επιλογή σας για τα cookies, 12 μήνες

Μετρούν ποια διαφήμιση οδηγεί σε επίσκεψη ή παραγγελία, ώστε να μην πληρώνουμε για διαφημίσεις που δεν αποδίδουν.

Ποια cookies;
  • Google Ads μέσω Google Tag Manager (_gcl_au, _gcl_aw), έως 90 ημέρες
  • OpenAI Ads, διαφημίσεις στο ChatGPT
  • wok_aff: μέσω ποιου συνεργάτη ήρθατε σε εμάς (πρόγραμμα συνεργατών), 60 ημέρες

4,6

Χώρα και γλώσσα

Κάθε χώρα έχει τη δική της ιστοσελίδα, με τιμές και ΦΠΑ της χώρας αυτής.

Προβολή

Cron, Action Scheduler και staging

Ενότητα 7: Ευρεσιμότητα και hosting · Χρόνος ανάγνωσης: 10 λεπτά

Στόχος μαθήματος: Μετά από αυτό το μάθημα μπορείτε να εξηγήσετε πώς το WooCommerce εκτελεί εργασίες στο παρασκήνιο, να ελέγχετε τις προγραμματισμένες ενέργειες και να τις αποκαθιστάτε όταν υπάρχει πρόβλημα, καθώς και να στήνετε ένα περιβάλλον staging για ένα ηλεκτρονικό κατάστημα με τρόπο που δεν επηρεάζει πραγματικούς πελάτες, πληρωμές ή παραγγελίες.

Βασικές έννοιες: WP-Cron, πραγματικό cron, DISABLE_WP_CRON, Action Scheduler, προγραμματισμένες ενέργειες, σε αναμονή, ολοκληρωμένες, αποτυχημένες, εκκαθάριση, staging για ηλεκτρονικό κατάστημα, δοκιμαστική λειτουργία του παρόχου πληρωμών, απενεργοποίηση email, webhooks, διασυνδέσεις, καμία επαναφορά της βάσης δεδομένων πάνω στην παραγωγή

Τι συμβαίνει όταν κανείς δεν κοιτάζει

Ένα ηλεκτρονικό κατάστημα κάνει πολλή δουλειά που δεν συνδέεται άμεσα με ένα κλικ κάποιου επισκέπτη:

  • ακύρωση απλήρωτων παραγγελιών όταν λήξει ο χρόνος δέσμευσης αποθέματος (μάθημα 3.4)·
  • αποστολή email μετά από αλλαγή κατάστασης, καθώς και webhooks προς διασυνδέσεις·
  • ενημέρωση αναφορών και στατιστικών στη διαχείριση·
  • εκκαθάριση ληγμένων συνεδριών και προσωρινών δεδομένων·
  • εφαρμογή των χρόνων διατήρησης από την καρτέλα Λογαριασμοί Απόρρητο (μάθημα 2.3)·
  • σε συνδρομές ή διασυνδέσεις με λογιστικό πρόγραμμα: χρέωση πληρωμών και προώθηση δεδομένων.

Για αυτά το WordPress χρησιμοποιεί το WP-Cron και το WooCommerce χρησιμοποιεί επιπλέον τον Action Scheduler. Αν αυτά δεν λειτουργούν σωστά, δεν το καταλαβαίνετε αμέσως. Το καταλαβαίνετε όταν απλήρωτες παραγγελίες συνεχίζουν να δεσμεύουν απόθεμα, οι αναφορές μένουν κενές ή μια διασύνδεση καθυστερεί μέρες.

WP-Cron και πραγματικό cron

Πώς λειτουργεί το WP-Cron και γιατί ένα πραγματικό cronjob είναι καλύτερο, εξηγείται στη σειρά μαθημάτων για το WordPress, μάθημα 6.3: το WP-Cron εκτελείται με τις επισκέψεις, όχι με βάση το ρολόι, κάτι που είναι αναξιόπιστο όταν οι επισκέπτες είναι λίγοι και επιβαρυντικό όταν είναι πολλοί. Η λύση: DISABLE_WP_CRON στο wp-config.php και ένα cronjob στον πίνακα ελέγχου του hosting σας που εκτελεί το wp-cron.php κάθε λίγα λεπτά.

Για ένα ηλεκτρονικό κατάστημα αυτό δεν είναι βελτιστοποίηση αλλά απαίτηση:

  • Τη νύχτα, όταν η επισκεψιμότητα είναι χαμηλή, οι απλήρωτες παραγγελίες πρέπει παρ' όλα αυτά να ακυρώνονται έγκαιρα.
  • Σε μια περίοδο προσφορών με μεγάλη κίνηση, δεν θέλετε μια βαριά εργασία παρασκηνίου να εκτελείται μαζί με το αίτημα σελίδας ενός πελάτη που θέλει να ολοκληρώσει την αγορά του.

Στη WebOké δημιουργείτε μια τέτοια εργασία στο DirectAdmin στην ενότητα Cron Jobs (DA 15.1, KB 48), με /usr/local/bin/php ως διαδρομή προς την PHP· σε άλλους παρόχους hosting λειτουργεί παρόμοια μέσω της αντίστοιχης οθόνης cron. Για ένα ηλεκτρονικό κατάστημα επιλέξτε διάστημα από ένα έως πέντε λεπτά, όχι δέκα. Μια εργασία που εκτελείται κάθε λεπτό και δεν έχει τίποτα να κάνει δεν κοστίζει σχεδόν τίποτα.

Action Scheduler: η ουρά εργασιών του WooCommerce

Ο Action Scheduler είναι μια ουρά για εργασίες παρασκηνίου που παρέχεται μαζί με το WooCommerce και χρησιμοποιείται και από πολλά άλλα πρόσθετα (συνδρομές, διασυνδέσεις με λογιστικά προγράμματα, email marketing). Κάθε εργασία είναι μια ενέργεια με χρονική στιγμή και κατάσταση. Η ουρά διεκπεραιώνεται μέσω μιας εργασίας WP-Cron (action_scheduler_run_queue), οπότε και εδώ ισχύει: χωρίς αξιόπιστο cron η ουρά καθυστερεί.

Όλα φαίνονται στο WooCommerce > Κατάσταση > Προγραμματισμένες ενέργειες (Scheduled Actions). Υπάρχουν καρτέλες ανά κατάσταση:

ΚατάστασηΣημασίαΤι κάνετε
Σε αναμονή (Pending)Πρέπει ακόμη να εκτελεστείΑν υπάρχουν εκατοντάδες με χρονική στιγμή στο παρελθόν, η ουρά καθυστερεί: ελέγξτε το cron σας
Σε εξέλιξη (In-progress)Εκτελείται τώραΑν μια ενέργεια κολλάει για πολλή ώρα, δείτε το log δίπλα της
Ολοκληρωμένη (Complete)ΈγινεΤίποτα· εκκαθαρίζονται αυτόματα
Αποτυχία (Failed)Παρουσίασε σφάλμαΔιαβάστε το μήνυμα σφάλματος στη στήλη Log· συχνά πρόκειται για ένα πρόσθετο ή μια διασύνδεση που δεν είναι προσβάσιμη
Ακυρωμένη (Canceled)Σκόπιμα δεν εκτελέστηκεΣυνήθως τίποτα

Σύμφωνα με τον πηγαίο κώδικα, ο Action Scheduler εκκαθαρίζει από προεπιλογή τις ολοκληρωμένες και ακυρωμένες ενέργειες μετά από έναν μήνα και τις αποτυχημένες μετά από τρεις μήνες. Αν ο πίνακας μεγαλώνει παρ' όλα αυτά γρήγορα, τότε πιθανότατα εκτελούνται πολλές ενέργειες που αποτυγχάνουν ή δημιουργούνται ξανά και ξανά· βρείτε ποιο πρόσθετο τις δημιουργεί (βοηθούν η στήλη Ομάδα και το όνομα του hook), αντί απλώς να αδειάσετε τον πίνακα.

Ένα παράδειγμα από την πράξη στο Theehuis Example: μετά από αλλαγή κωδικού πρόσβασης, η διασύνδεση με το λογιστικό πρόγραμμα έβαζε κάθε παραγγελία στην ουρά ως αποτυχημένη ενέργεια. Μετά από μία εβδομάδα υπήρχαν 400 αποτυχημένες ενέργειες και έλειπαν 60 τιμολόγια (μάθημα 5.6). Αφού αποκαταστάθηκε η διασύνδεση, ο διαχειριστής μπόρεσε να εκτελέσει ξανά τις ενέργειες μία προς μία με Run now (Run).

Staging για ένα ηλεκτρονικό κατάστημα

Τι είναι το staging, πώς το δημιουργείτε και πώς το προστατεύετε (κωδικός πρόσβασης, noindex), εξηγείται στη σειρά μαθημάτων για το WordPress, μάθημα 8.3. Στη WebOké αυτό γίνεται με κλωνοποίηση στο Installatron (DA 13.7, KB 232) και έναν φάκελο με κωδικό πρόσβασης (DA 15.9)· άλλοι πάροχοι hosting διαθέτουν παρόμοια εργαλεία. Για ένα ηλεκτρονικό κατάστημα προστίθενται μερικά ακόμη σημεία, επειδή ένα αντίγραφο καταστήματος περιέχει πραγματικά δεδομένα πελατών και μπορεί να εκτελέσει πραγματικές ενέργειες.

Αμέσως μετά την κλωνοποίηση, πριν κάνετε οτιδήποτε άλλο:

  1. Πάροχος πληρωμών σε δοκιμαστική λειτουργία, με δοκιμαστικά κλειδιά. Ένα staging με κλειδιά live μπορεί να δεχτεί πραγματικές πληρωμές ή να εκτελέσει επιστροφές χρημάτων.
  2. Email απενεργοποιημένο ή ανακατευθυνόμενο. Διαφορετικά, ένα αντίγραφο στέλνει επιβεβαιώσεις, υπενθυμίσεις και email εγκαταλελειμμένου καλαθιού σε πραγματικούς πελάτες. Χρησιμοποιήστε ένα πρόσθετο που μπλοκάρει όλα τα email ή τα στέλνει σε μία δοκιμαστική διεύθυνση.
  3. Διασυνδέσεις και webhooks απενεργοποιημένα. Λογιστική, συγχρονισμός αποθέματος, ετικέτες αποστολής, email marketing: διαφορετικά το staging καταχωρεί τιμολόγια ή αποστέλλει δέματα. Ελέγξτε επίσης το WooCommerce > Ρυθμίσεις > Για προχωρημένους > Webhooks και τα κλειδιά API.
  4. Έλεγχος των προγραμματισμένων ενεργειών. Η ουρά έχει αντιγραφεί μαζί με τα υπόλοιπα. Διαφορετικά, ενέργειες σε αναμονή (ένα email υπενθύμισης, μια πληρωμή συνδρομής) θα εκτελεστούν ξανά στο staging.
  5. Περιορισμός των προσωπικών δεδομένων. Αν δεν χρειάζεστε πραγματικά δεδομένα πελατών για τις δοκιμές, διαγράψτε τα ή ανωνυμοποιήστε τα στο staging. Ένα staging εμπίπτει κι αυτό στον GDPR και συχνά είναι λιγότερο καλά προστατευμένο (μάθημα 5.5).

Και ο σημαντικότερος κανόνας κατά την επαναφορά: μην επαναφέρετε ποτέ τη βάση δεδομένων του staging πάνω σε ένα κατάστημα σε λειτουργία. Από τη στιγμή της κλωνοποίησης μέχρι την επαναφορά έχουν προστεθεί παραγγελίες, πελάτες, μεταβολές αποθέματος και πληρωμές· αυτά θα τα χάσετε. Εφαρμόστε ξανά τις αλλαγές στην παραγωγή (τώρα ξέρετε ότι λειτουργούν) ή συγχρονίστε μόνο αρχεία. Αν πρέπει οπωσδήποτε να γίνει με τη βάση δεδομένων, κάντε το μόνο με το κατάστημα σε λειτουργία συντήρησης, αμέσως μετά από ένα νέο αντίγραφο ασφαλείας και με ένα εργαλείο που παραλείπει παραγγελίες και πελάτες.

Δοκιμή μιας ενημέρωσης στο staging

Μια τυπική διαδρομή για μια μεγάλη ενημέρωση του WooCommerce ή ενός προσθέτου πληρωμών:

  1. Δημιουργήστε ένα νέο staging (κλώνο της παραγωγής) και ρυθμίστε σωστά τα πέντε παραπάνω σημεία.
  2. Κάντε την ενημέρωση στο staging και εκτελέστε την ενημέρωση της βάσης δεδομένων αν τη ζητήσει το WooCommerce.
  3. Κάντε μια δοκιμαστική παραγγελία με τη δοκιμαστική λειτουργία: πληρωμή, αποτυχία, επιστροφή χρημάτων (μάθημα 4.5).
  4. Ελέγξτε στις Προγραμματισμένες ενέργειες και στο αρχείο σφαλμάτων αν υπάρχουν νέα σφάλματα.
  5. Στη συνέχεια ενημερώστε την παραγωγή σε μια ήσυχη στιγμή, με αντίγραφο ασφαλείας λίγο πριν (μάθημα 6.2).

Σύνοψη

  • Το WooCommerce κάνει πολλή δουλειά στο παρασκήνιο· αυτή εκτελείται μέσω του WP-Cron και του Action Scheduler.
  • Για ένα ηλεκτρονικό κατάστημα χρησιμοποιείτε πάντα ένα πραγματικό cronjob (κάθε ένα έως πέντε λεπτά) αντί για WP-Cron με τις επισκέψεις.
  • Ελέγχετε το WooCommerce > Κατάσταση > Προγραμματισμένες ενέργειες: πολλές καθυστερημένες ενέργειες σε αναμονή ή αποτυχημένες ενέργειες δείχνουν ότι το cron ή μια διασύνδεση δεν λειτουργεί.
  • Στο staging: πάροχος πληρωμών σε δοκιμαστική λειτουργία, email και διασυνδέσεις απενεργοποιημένα, έλεγχος προγραμματισμένων ενεργειών, περιορισμός προσωπικών δεδομένων.
  • Μην επαναφέρετε ποτέ μια βάση δεδομένων staging πάνω σε ένα κατάστημα σε λειτουργία· εφαρμόστε ξανά τις αλλαγές στην παραγωγή.

Κουίζ

1. Γιατί ένα πραγματικό cronjob είναι πιο σημαντικό για ένα ηλεκτρονικό κατάστημα απ' ό,τι για ένα blog;



2. Στις Προγραμματισμένες ενέργειες υπάρχουν 2000 ενέργειες σε αναμονή με χρονική στιγμή χθεσινή. Ποια είναι η πιο πιθανή αιτία;



3. Τι ρυθμίζετε πρώτα σε ένα νέο staging ενός ηλεκτρονικού καταστήματος;



4. Δημιουργήσατε ένα staging τη Δευτέρα και θέλετε την Παρασκευή να βάλετε τις αλλαγές σε λειτουργία. Γιατί δεν επαναφέρετε απλώς τη βάση δεδομένων;



Άσκηση

Άσκηση A7.3: Είναι το staging σας προστατευμένο; Πρόκειται για τον ίδιο έλεγχο με την άσκηση A8.3 της σειράς μαθημάτων για το WordPress. Χρειάζεστε πρώτα απόδειξη ιδιοκτησίας για το domain σας (ένα TXT record _weboke-cursus.<domein> ή ένα αρχείο /.well-known/weboke-cursus-<code>.txt με τον κωδικό που λαμβάνετε). Στη συνέχεια συμπληρώστε τη διεύθυνση του καταστήματός σας και τη διεύθυνση του staging σας (ένας host στο ίδιο domain). Το πρόγραμμα ζητά την αρχική σελίδα του staging, χωρίς στοιχεία σύνδεσης, και εκείνη της παραγωγής. Πράσινο αν το staging ζητά κωδικό πρόσβασης (401) ή αν έχει noindex και χρησιμοποιεί τη δική του διεύθυνση (το σημείο εισόδου REST παραπέμπει στον host του staging), ενώ η παραγωγή δεν έχει noindex. Πορτοκαλί αν το staging έχει noindex αλλά όχι κωδικό πρόσβασης ή δεν έχει έγκυρο πιστοποιητικό. Κόκκινο αν το staging είναι ανοιχτό και ευρετηριάσιμο, αν το staging εξακολουθεί να παραπέμπει στη διεύθυνση της παραγωγής ή αν η παραγωγή έχει κατά λάθος noindex.

Ερωτήσεις για εσάς (δεν ελέγχονται): είναι ο πάροχος πληρωμών στο staging σας σε δοκιμαστική λειτουργία; Είναι το email απενεργοποιημένο ή ανακατευθυνόμενο; Έχουν απενεργοποιηθεί οι διασυνδέσεις και τα webhooks; Πόσες ενέργειες σε αναμονή και πόσες αποτυχημένες ενέργειες υπάρχουν αυτή τη στιγμή στις Προγραμματισμένες ενέργειες της παραγωγής;

Άσκηση A7.3: Είναι το staging σας προστατευμένο;

Αυτός ο έλεγχος ζητά διαδρομές που επιτρέπεται να ελεγχθούν μόνο στο δικό σας κατάστημα. Κάντε πρώτα κλικ στο "Εμφάνιση του κωδικού μου" και προσθέστε αυτόν τον κωδικό ως εγγραφή TXT στο _weboke-cursus.<το domain σας> ή ως αρχείο στον ιστότοπό σας (δείτε την εξήγηση δίπλα στον κωδικό).



Ό,τι συμπληρώνετε και ό,τι βρίσκουμε δεν το αποθηκεύουμε. Το πρόγραμμα περιήγησής σας θυμάται τις απαντήσεις σας και αν περάσατε την άσκηση. Αν έχετε εγγραφεί, αποθηκεύουμε μόνο ότι η άσκηση ήταν (σχεδόν) σωστή στο Τα μαθήματά μου· εκεί μπορείτε και να το διαγράψετε.

Περαιτέρω ανάγνωση

Αυτά τα άρθρα περιγράφουν τα βήματα στους πίνακες ελέγχου της WebOké· σε άλλους πίνακες ελέγχου λειτουργούν παρόμοια.

Μια στιγμή…

Ρυθμίστε τα domains σας

Ρυθμίστε για κάθε domain τους nameservers, τη σύνδεση με το hosting σας και ποιος θα είναι ο κάτοχος.

Φόρτωση των domains σας…