# 10 χρήσιμα κόλπα για το WooCommerce

> Δέκα έτοιμα snippets για WooCommerce: tabs, σχετικά προϊόντα, κείμενα καλαθιού, μεταφορικά και απόκρυψη κατηγοριών. Δοκιμασμένα σε WooCommerce 10 και PHP 8.3.

URL: https://creationweb.gr/woocommerce/
Ενημερώθηκε: 2026-10-25

---

Δέκα πράγματα που ζητούν σχεδόν όλα τα eshop και λύνονται με λίγες γραμμές στο `functions.php`, χωρίς πρόσθετο. Ο κώδικας είναι δοκιμασμένος σε **WooCommerce 10.x με PHP 8.3** και χρησιμοποιεί τα σημερινά hooks, όχι τα παλιά που κυκλοφορούν ακόμα σε οδηγούς της προηγούμενης δεκαετίας.

Μία σύσταση πριν ξεκινήσετε: γράψτε τα σε **child theme**, όχι στο κύριο θέμα. Αλλιώς η πρώτη ενημέρωση θα τα σβήσει.

## 1. Αφαίρεση του dropdown ταξινόμησης από τις κατηγορίες

Το «Προεπιλεγμένη ταξινόμηση» πάνω από τα προϊόντα συχνά περισσεύει, ειδικά σε καταλόγους με λίγα είδη.

`remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );`

## 2. Αφαίρεση tab από τη σελίδα του προϊόντος

Κρατήστε μόνο όσα tabs χρησιμοποιείτε. Σβήστε τις γραμμές που δεν σας αφορούν.

`add_filter( 'woocommerce_product_tabs', 'cw_remove_product_tabs', 98 );

function cw_remove_product_tabs( $tabs ) {
unset( $tabs['description'] ); // Περιγραφή
unset( $tabs['reviews'] ); // Κριτικές
unset( $tabs['additional_information'] ); // Πρόσθετες πληροφορίες

return $tabs;
}`

## 3. Αλλαγή στη σειρά των tabs

Μικρότερος αριθμός σημαίνει πιο μπροστά. Χρήσιμο όταν οι κριτικές πουλάνε περισσότερο από την περιγραφή.

`add_filter( 'woocommerce_product_tabs', 'cw_reorder_tabs', 98 );

function cw_reorder_tabs( $tabs ) {
$tabs['reviews']['priority'] = 5; // Πρώτα οι κριτικές
$tabs['description']['priority'] = 10; // Μετά η περιγραφή
$tabs['additional_information']['priority'] = 15; // Τέλος οι πληροφορίες

return $tabs;
}`

## 4. Πόσα σχετικά προϊόντα και σε πόσες στήλες

Παλιότεροι οδηγοί λένε να ξαναγράψετε τη συνάρτηση `woocommerce_output_related_products()`. Μην το κάνετε: η υπογραφή της άλλαξε στο WooCommerce 3.0 και ο παλιός κώδικας δεν δουλεύει πια. Υπάρχει φίλτρο ακριβώς για αυτή τη δουλειά.

`add_filter( 'woocommerce_output_related_products_args', 'cw_related_products_args' );

function cw_related_products_args( $args ) {
$args['posts_per_page'] = 4; // Πόσα προϊόντα
$args['columns'] = 2; // Σε πόσες στήλες

return $args;
}`

## 5. Πόσα προϊόντα ανά σελίδα στο κατάστημα

Προσοχή στην ταχύτητα: πάνω από 24 ανά σελίδα αρχίζει να φαίνεται στο LCP, γιατί φορτώνουν περισσότερες εικόνες.

`add_filter( 'loop_shop_per_page', function () {
return 24;
}, 20 );`

## 6. Αλλαγή στο κείμενο «Προσθήκη στο καλάθι»

Θέλει δύο φίλτρα, γιατί το WooCommerce χρησιμοποιεί διαφορετικό για τη σελίδα του προϊόντος και διαφορετικό για τις λίστες. Οι περισσότεροι οδηγοί δίνουν μόνο το πρώτο και μετά απορούν γιατί δεν άλλαξε στις κατηγορίες.

`// Στη σελίδα του προϊόντος
add_filter( 'woocommerce_product_single_add_to_cart_text', 'cw_cart_button_text' );
// Στις κατηγορίες και τις λίστες προϊόντων
add_filter( 'woocommerce_product_add_to_cart_text', 'cw_cart_button_text' );

function cw_cart_button_text() {
return 'Το θέλω';
}`

## 7. Αλλαγή στο κείμενο «Εξαντλημένο»

Αποφύγετε τα παλιά παραδείγματα που κάνουν `str_replace` στη φράση «Out of stock». Σε ελληνικό eshop το κείμενο είναι ήδη μεταφρασμένο, οπότε η αντικατάσταση δεν βρίσκει τίποτα και το κόλπο φαίνεται να μην δουλεύει. Το σωστό φίλτρο ρωτά το ίδιο το προϊόν.

`add_filter( 'woocommerce_get_availability_text', 'cw_stock_text', 10, 2 );

function cw_stock_text( $text, $product ) {
if ( ! $product->is_in_stock() ) {
return 'Εξαντλήθηκε, ρωτήστε μας πότε έρχεται';
}

return $text;
}`

## 8. Μετονομασία μεθόδου πληρωμής στο ταμείο

Το «Αντικαταβολή» μπερδεύει κόσμο. Με ένα φίλτρο το λέτε όπως θέλετε, χωρίς να πειράξετε τις ρυθμίσεις της πύλης πληρωμής.

`add_filter( 'woocommerce_gateway_title', 'cw_gateway_title', 10, 2 );

function cw_gateway_title( $title, $gateway_id ) {
if ( 'cod' === $gateway_id ) {
return 'Πληρωμή στον διανομέα κατά την παράδοση';
}

return $title;
}`

## 9. Απόκρυψη των άλλων μεταφορικών όταν ισχύει η δωρεάν αποστολή

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

`add_filter( 'woocommerce_package_rates', 'cw_hide_shipping_when_free', 100 );

function cw_hide_shipping_when_free( $rates ) {
$free = array();

foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->get_method_id() ) {
$free[ $rate_id ] = $rate;
}
}

// Αν υπάρχει δωρεάν αποστολή κρατάμε μόνο αυτή, αλλιώς τα αφήνουμε όλα.
return ! empty( $free ) ? $free : $rates;
}`

## 10. Απόκρυψη μιας κατηγορίας από τη σελίδα του καταστήματος

Χρήσιμο για κατηγορίες που θέλετε προσβάσιμες με link αλλά όχι στη βιτρίνα, όπως προσφορές για συνδρομητές. Το WooCommerce έχει δικό του hook, οπότε δεν χρειάζονται οι έλεγχοι `is_main_query` που βλέπετε σε παλιά παραδείγματα.

`add_action( 'woocommerce_product_query', 'cw_hide_category_from_shop' );

function cw_hide_category_from_shop( $q ) {
$q->set( 'tax_query', array(
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'prosfores' ), // Βάλτε εδώ το δικό σας slug
'operator' => 'NOT IN',
),
) );
}`

## Αν κολλήσετε κάπου

Αντιγράψτε ένα κόλπο τη φορά και ελέγξτε το eshop μετά από κάθε ένα. Αν κάτι σπάσει, το βρίσκετε αμέσως. Και κρατήστε αντίγραφο του `functions.php` πριν αρχίσετε.

Αν δεν θέλετε να ασχοληθείτε με κώδικα, αναλαμβάνουμε εμείς την [κατασκευή και υποστήριξη eshop σε WooCommerce](https://creationweb.gr/kataskeui-eshop/). Αν προτιμάτε να τα μάθετε μόνοι σας, δείτε τα [μαθήματα κατασκευής eshop](https://creationweb.gr/mathimata-kataskeuis-eshop/).
