Geotron Δημοσ. 21 Απριλίου 2024 Δημοσ. 21 Απριλίου 2024 Καλησπέρα σας, Αρχάριος στην κατασκευή ιστοσελίδων, ίσως φανει αφελής η ερώτηση μου. Βασικά, ότι γράφει ο τίτλος. Έχω δύο μεταφορικές και όταν το καλάθι υπερβαίνει τα 50 ευρώ θα ήθελα ο πελάτης να μπορεί να επιλέξει μια από τις δύο μεταφορικές για να παραλάβει. Τώρα μου εμφανίζει την πρώτη κατά σειρά επιλογή δωρεάν μεταφορικών στον πίνακα με όλα τα shipping methods. Προς διευκόλυνση σας, όταν υπάρχει δυνατότητα για Δωρεάν μεταφορικά, όλες οι άλλες επιλογές δεν εμφανίζονται στο chekout με χρήση του pluging "wc hide shipping methods". γνωρίζει κανείς τι θα μπορούσα να κάνω? ευχαριστώ πολύ
HomoEranus Δημοσ. 22 Απριλίου 2024 Δημοσ. 22 Απριλίου 2024 Θα δημιουργήσεις 2 δωρεάν τρόπους αποστολής. Τον Courier A και τον Courier Β
Geotron Δημοσ. 22 Απριλίου 2024 Μέλος Δημοσ. 22 Απριλίου 2024 καλησπέρα, εχω ήδη δημιουργήσει για κάθε κουριερ δυο τροπους αποστολής. Ένας με fixed price και άλλος ένας με Δωρεαν. ενώ ...δουλεύει ο αλγοριθμος, μου εμφανίζει μόνο το ένα κουριερ, αυτό που εμφανιζεται πιο πάνω στην λίστα με όλους τους τρόπους αποστολής, fixed price και Δωρεάν δλδ.
Geotron Δημοσ. 23 Απριλίου 2024 Μέλος Δημοσ. 23 Απριλίου 2024 Συνημμένα κάποια screenshots με τις ρυθμίσεις και το αποτέλεσμα που θα ήθελα να αλλάξω.
friggs Δημοσ. 23 Απριλίου 2024 Δημοσ. 23 Απριλίου 2024 Όταν απενεργοποιείς το plugin ο δεύτερος τρόπος δωρεάν αποστολής εμφανίζεται? Αν ναι το πρόβλημα είναι εκει
Geotron Δημοσ. 24 Απριλίου 2024 Μέλος Δημοσ. 24 Απριλίου 2024 Καλημέρα και ευχαριστώ για την βοήθεια. Δυστυχώς, όταν απενεργοποιω το plug-in εμφανίζονται όλοι οι τρόποι μεταφοράς δλδ και δωρεάν με ΕΛΤΑ και 3.50€ με ΕΛΤΑ. Το ίδιο και με την acs.
friggs Δημοσ. 26 Απριλίου 2024 Δημοσ. 26 Απριλίου 2024 Αν προσθέσεις αυτό στο functions.php του θέματος που χρησιμοποιείς μπορείς να κάνεις τη δουλειά σου χωρίς το plugin. Απλά θα πρέπει να αλλάξεις τα ονόματα με αυτά που έχουν οι τρόποι αποστολής σου. add_filter( 'woocommerce_package_rates', 'hide_shipping_method_based_on_cart_price', 10, 2 ); function hide_shipping_method_based_on_cart_price( $shipping_methods, $package ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; $total = WC()->cart->get_cart_contents_total() + WC()->cart->get_cart_contents_tax(); if( $total < 50 ) { unset( $shipping_methods['acs_free_shipping']); unset( $shipping_methods['elta_free_shipping']); } elseif ( $total >= 50 ) { unset( $shipping_methods['acs_shipping']); unset( $shipping_methods['elta_shipping']); } return $shipping_methods; } 1
Geotron Δημοσ. 9 Μαΐου 2024 Μέλος Δημοσ. 9 Μαΐου 2024 καλησπέρα, Απενεργοποίησα το plugin "wc hide shipping methods". και στην συνέχεια αντέγραψα (στο κενό) αρχείο functions.php του child theme τον κώδικα που μου έγραψες εχοντας μετονομάσει τα ονόματα μτφ. το αποτέλεσμα φαίνεται στην home page! τι ματσακονιά έκανα άραγες?
friggs Δημοσ. 9 Μαΐου 2024 Δημοσ. 9 Μαΐου 2024 Δεν έχεις πρόσβαση από ftp η από τον filemanager του host σου (πχ από το cpanel)? Δεν ξέρω γιατί στο δείχνει εκεί, στο debug.log σου δείχνει error? Δοκίμασε να βάλεις <?php σε μια γραμμή πριν τον κώδικα Επίσης στα ονόματα που έχεις αλλάξει έχεις αφήσει κενά λάθος μετά την πρώτη απόστροφο. Και στο δεύτερο ACS λείπει μια απόστροφος και μετά το δεύτερο ΕΛΤΑ Courier πάλι έχει κενό. Διόρθωσε λίγο πρώτα αυτές τις λεπτομέρειες και θα βρεθεί η λύση 1
Geotron Δημοσ. 9 Μαΐου 2024 Μέλος Δημοσ. 9 Μαΐου 2024 Φίλε μου ανεξαρτήτως αν βρεθεί λύση οφαίλω να σε ευχαριστήσω για την βοήθεια και τον χρόνο σου. μετά το μήνυμα που έστειλα έκανα κάποιες αλλαγές διαβάζοντας από εδώ και από εκεί ({είμαι άσχετος με προγραμματισμό). στην αρχή πρόσθεσα <?php και στο τέλος >?. διόρθωσα τα κενά μου αναφέρεις και έβγαλα τις απόστροφους όπως διάβασα εδώ: https://stackoverflow.com/questions/41298675/parse-error-syntax-error-unexpected-expecting-identifier-t-string-or-va εν τέλει πέρασα το παρακάτω: <?php add_filter( 'woocommerce_package_rates', 'hide_shipping_method_based_on_cart_price', 10, 2 ); function hide_shipping_method_based_on_cart_price( $shipping_methods, $package ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; $total = WC()->cart->get_cart_contents_total() + WC()->cart->get_cart_contents_tax(); if( $total < 50 ) { unset( $shipping_methods[ACS_(ΔΩΡΕΑΝ)]); unset( $shipping_methods[ΕΛΤΑ_Courier_(ΔΩΡΕΑΝ)]); } elseif ( $total >= 50 ) { unset( $shipping_methods[ACS]); unset( $shipping_methods[ΕΛΤΑ_Courier]); } return $shipping_methods; } ?> αλλά ούτε τώρα μου επιτρέπει να διαλέγω μια από τις δύο μεταφορικές με δωρεάν μεταφορικά. Διαπίστωσα μάλιστα ότι και με την αφαίρεση ή προσθήκη προιόντων είχα θέμα, δεν με άφηνε να πειράξω το καλάθι. λες να φταίει που δεν αναφέρω στον κώδικα την τρίτη επιλογή, για παραλαβή από το κατάστημα? που θα μπορούσα να την προσθέσω στον κώδικα για να δοκιμάσω?
friggs Δημοσ. 10 Μαΐου 2024 Δημοσ. 10 Μαΐου 2024 (επεξεργασμένο) Όχι δεν φταίει αυτό, ο κώδικας απλά κρύβει τις μη επιθυμητές επιλογές. Χωρίς τον κωδικα δλδ θα πρέπει να εμφανίζει όλες τις επιλογές, και με τον κώδικα να σβήνει αναλογα με το ποσό τις λάθος επιλογές. Το ότι δε σε αφήνει να πειράξεις το καλάθι είναι ίσως γιατί βγάζει καπου ερρορ. Κανονικά αν είναι να πειράζεις το οτιδήποτε πρέπει να αποκτήσεις πρόσβαση στο debug.log αρχείο για να βλέπεις αν βγάζει κάποιο συντακτικό- γραμματικό λάθος (όχι λογικό). Επίσης κανονικά πρέπει να κρατάς κάποιο backup από τα αρχεία που αλλάζεις πριν τις αλλαγές, και να έχεις και πρόσβαση από ftp ώστε να μπορείς να επαναφέρεις το αρχείο αν κάτι πάει στραβά και πέσει το σάιτ. Ξαναβάλε τις αποστρόφους που έβγαλες από τα ονόματα. Αν δεν δουλεύει ούτε πάλι, ίσως δεν είναι σωστά τα ονόματα των τρόπων αποστολής(είναι διαφορετικά αυτά που εμφανίζονται και διαφορετικά τα ονόματα-id τους. Για να βρεις τα σωστά ονόματα σβήσε τον κώδικα που έχεις βάλει προσωρινά μην τυχόν και έχει κανένα λάθος και βάλε προσωρινά αυτόν: add_filter( 'woocommerce_shipping_classes_columns', 'bbloomer_shipping_class_id_column' ); function bbloomer_shipping_class_id_column( $shipping_class_columns ) { $delivery_zones = WC_Shipping_Zones::get_zones(); foreach ((array) $delivery_zones as $key => $the_zone) { echo "<b>" . $the_zone['zone_name'] . "</b><br>"; foreach ($the_zone['shipping_methods'] as $value) { echo $value->title . " ( " . $value->method_title . " - " . $value->cost . ") " . $value->id . ":" . $value->instance_id; echo "</br>"; } } return $shipping_class_columns; } Μετά πήγαινε στη σελίδα /wp-admin/admin.php?page=wc-settings&tab=shipping§ion=classes και θα πρέπει να σου εμφανίζει ένα κατεβατό με πληροφορίες για τις μεθόδους σου. Αυτό που ψάχνεις θα είναι της μορφής: elta_shipping:14 Επίσης έχε υπόψιν ότι και σωστά να δουλεύει, για να εμφανίσει τις σωστές επιλογές θα πρέπει να ξανάυπολογίσει το καλάθι, θα πρέπει δηλαδή να βάλεις η να βγάλεις κάτι από το καλάθι γιατί αλλιώς μπορεί να δείχνει τις λάθος επιλογές. Επεξ/σία 10 Μαΐου 2024 από friggs
Geotron Δημοσ. 25 Μαΐου 2024 Μέλος Δημοσ. 25 Μαΐου 2024 καλησπέρα φίλε μου, το δουλεύω το θέμα και μετά από πειραματισμούς κατέληξα στο συμπέρασμα πως ότι και τα γράφω στο functions.php αυτό δεν τρέχει! Δοκίμασα τώρα το plugin code snippets, δημιούργησα ένα καινούργιο με τον κώδικα που μου έγραψες και βουαλά, τα αποτελέσματα είναι όπως προέβλεψες: Ελλάδα ΕΛΤΑ Courier ( Flat rate - 3,50) flat_rate:8 ACS ( Flat rate - 3,50) flat_rate:12 ACS (ΔΩΡΕΑΝ) ( Free shipping - ) free_shipping:13 ΕΛΤΑ Courier (ΔΩΡΕΑΝ) ( Free shipping - ) free_shipping:11 ΠΑΡΑΛΑΒΗ ΑΠΟ ΤΗΝ ΕΔΡΑ ΜΑΣ (ΔΩΡΕΑΝ) ( Local pickup - ) local_pickup:10 Ευρώπη 01 Flat rate ( Flat rate - 17,00) flat_rate:2 Ευρώπη 02 Flat rate ( Flat rate - 22,00) flat_rate:3 το κοιτάω και σε ενημερώνω για την εξέλιξη. Σε ευχαριστώ πολύ! υγ--> cpanel έχω μέσω του παρόχου. λίγο χαοτικά τόσα άγνωστα σε εμένα αρχεία αλλά θα το μελετήσω.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα