Woocommerce nyelvi frissítés letiltása

Sziasztok!
Van egy bosszantó problémám a woocommerce fordítással kapcsolatosan…
A webáruházamban magázódós nyelvi fájlt használok amit én magam fordítottam le.
Ezt a fájlt helyezem el a “/wp-content/languages/plugins” mappába amit a woocommerce mindig szépen be is tölt.
Azonban a woocommerce minden frissítésnél (meg néha csak úgy) lecseréli a saját “gyári magyarra” ami viszont tegezős formátumú.
Kérdésem, hogy van-e valami apró kód (vagy bármi egyéb megoldás) amivel meglehetne mondani a woocommerce-nek hogy hagyja békén a nyelvi fájlt, köszönöm szépen de ne frissítgesse automatikusan.

Ezt a kódot kaptam amit betettem a function.php-ba:

add_filter( ‘auto_update_translation’, ‘__return_false’ );

De ez sajnos nem oldotta meg a dolgot
Továbbra frissülnek a háttérben a nyelvi fájlok. :frowning:

Köszi a segítséget előre is

A WordPress frissítés egy nagyon kényes kérdés, sok hiedelem övezi, és ellentmondásos helyzetekben nincs rá helyes válasz, csak a legkisebb rossz.

Arra az esetre tudok mondani valamit, amikor a honlapnak van szakértő (core-t ismerő, kódot auditáló) gazdája. Ha nincs gazdája, arra azt tudom ajánlani, hogy legyen neki, tudjon annyit termelni, hogy lehessen neki.

Nagyon konzervatív vagyok a frissítések terén, pl. az 5.x verziót senkinek sem ajánlom. Talán majd 5.2-nél, de lehet később. Üzleti okok miatt a WP core gyorsabban halad, mint ahogyan működni tudna. A nagyon konzervatív azt jelenti, hogy valóban nem frissítem a core-t, a plugin-okat, hanem más területeken implementálok biztonsági intézkedéseket. A frissítés számomra főleg hibalehetőséget jelent, ezért a frissítést kereső HTTP kérések és a frissítések telepítése ki van kapcsolva.

Neked is azt ajánlom, hogy az ilyen motorháztető alatti dolgokat pici MU plugin-ekben valósítsd meg, ne a sablonban. Ha vásárolt sablonod van, akkor gyerek sablont kell használni, hogy ne okozzunk zűrzavart.

Visszatérve a frissítésekre: a core frissítések kikapcsolása és a plugin-ok részleges auditja mellett az azokban található - egyedi - frissítési mechanizmusokat is felderítem, és hook-okkal, üres függvényekkel megakadályozom a frissítést. Ez nagyon jó szerkesztői élményt okoz, mert nem kell várni munka közben a frissítések keresésére, illetve nem lesznek home call-ok a plugin szerzők honlapjára.

A kérdésedre tehát főként az a válaszom, hogy meg kell teremteni a szakértői támogatáshoz szükséges dolgokat, és csak akkor frissíteni, amikor van rá lehetőség, hogy a honlap alaposan át legyen nézve.
A WordPress core-t nem ismerem, viszont ismerem a logikáját és a grep paranccsal bele tudok keresni a kódjába!

$ grep "apply_filters" wp-admin/includes/class-language-pack-upgrader.php
                        $update = apply_filters( 'async_update_translation', $update, $language_update );

Itt kis munkával (próba hook-olás egy MU plugin-ban) meg lehet tanulni, hogy a kívánt WC nyelvi fájl frissítésére hogyan mondjunk nem-et.

Köszönöm a válaszod,
Azt hiszem sajnos majdnem semmit nem értek abból amit írtál.
Én nem vagyok programozó, hanem mint több tízmillióan csak használom a WP-t.
Szerintem ez a problémám feltevésemben is egyértelműen kitűnik. :slight_smile:
Tehát akkor ezt a kódrészletet amit írtál helyezzem el a function.php-ban?
És akkor megoldódik ez a problémám?
Vagy mit csinál ez a kis kód részlet?

(Egyébként vásárolt sablonom van és használok hozzá gyerek sablont…)

1 kedvelés

Esetleg Loco Translate-el megpróbáltad?

Két segítség hozzá, hogy ne íródjon felül a frissítésnél:


Persze Loco-t használok a fordításhoz…
De a woocommerce nyelvi frissítés mindig felül írja po és mo fájlokat
Van valami Loco beállítás amivel ez megakadályozható?

Elvileg ha jól állítod be azt, hogy hova mentse a fájlt, akkor nem írja felül. Az egyik cikkben erről volt szó.

1 kedvelés

Amúgy a kódod csak ennyiből áll? Mert én a Loco Translate-nél ezt találtam:

if( function_exists(‘add_filter’) ){
add_filter( ‘auto_update_translation’, ‘__return_false’ );
}

ha nem ezt próbáltad, csak azt, amit bemásoltál, akkor nézd meg ezzel. ők írták, szerintem működni fog.

1 kedvelés

Elnézést, csak a bennem feszülő gondolatokat írtam le.

Most kikeresem a WC nyelvi fájlok felülírásának módját, és közzé teszem hamar…

1 kedvelés

wp-content/mu-plugins/wc-stop-translation-updates-hu.php (lehet a mu-plugins könyvtárat létre kell hozd)

<?php

// Hook plugin updates
add_filter( 'site_transient_update_plugins', function ( $transient ) {
    // Loop through all available updates
    if ( is_object( $transient ) && property_exists( $transient, 'translations' ) ) {
        foreach ( $transient->translations as $index => $update ) {
            // Remove Hungarian WooCommerce translation
            if ( 'plugin' === $update['type'] && 'woocommerce' === $update['slug'] && 'hu_HU' === $update['language'] ) {
                unset( $transient->translations[ $index ] );
                break;
            }
        }
    }
    return $transient;
}, 0 );

Némi visszajelzést szívesen veszek.

1 kedvelés

Köszi, akkor most ezt beillesztettem és várok a következő nyelvi frissítésre… :slight_smile:

Szia Viktor!
Tudnál segíteni megint ebben a nyelvi fájl frissítés témában?
Ez a kód amit írtál szépen működik azóta is. :slight_smile:
Mióta feltettem azóta a Woocomerce frissítésnél nem cseréli le a nyelvi fájlt.
Azonban néhány napja a szerverünk fel lett frissítve php 7.3-ra.
A wordpress elkezdett látványos fehér képernyős fagyásokat produkálni.
Csak a back részen, az oldal ment rendesen.
Elkezdtem kilőni a plugin-okat és sajnos ez a kód csinálja így hát le kellett tiltanom.
Most megy stabilan a wordpress de megint nem megy a nyelvi frissítés tiltás. :frowning:
Esetleg rá tudnál nézni erre a kódra, hogy miért fagyasztja a wordpresst-?
Gondolom talán valami változtatással ismét megoldható lenne, hogy fusson.

Köszi a segítséget előre is.

Szia!

A fenti kódban nem találok hibát.
Ha a PHP hibanaplóból megosztod a hibaüzenetet, akkor közelebb kerülünk a megoldáshoz.

Szia!
Köszönöm a választ. :slight_smile:
Az a legfurcsább, hogy erről a jelenségről semmilyen hiba üzenet nincs az error logban.
A jelenség pedig csupán annyi, hogy ha bármilyen utasítást kiadok a wordpress-ben akkor a végrehajtás után csak egy fehér oldal töltődik be. Minden esetben.
Pl. ha egy bővítményt kikapcsolok, vagy bekapcsolok, vagy törlök akkor azt mindig végrehajtja de utána a böngészőbe csak egy üres fehér oldal töltődik vissza.
Pedig az URL-ben helyesen látszódik ez esetben ugye a plugin oldal.
És hiába frissítem a böngésző oldal betöltést akkor is csak egy üres fehér oldal látszódik.
Ha viszont kimásolom az URL-t és beillesztem egy másik lapra akkor azonnal megnyílik rendesen.
Nagyon furcsa jelenség…

Ha kitörlöm ezt plugin-t az “mu-plugin” könyvtárból akkor nincs ez a probléma.
Ahogy írtam ez jelenség csak a Server PHP 7.3 ra állítás után áll fenn.
Ha a szervert visszaállítom a PHP 7.2-re és ismét engedélyezem a plugin-t akkor minden rendben van.
Hát ennyi.
Tényleg nagyon fura jelenség. :slight_smile:

Sajnos csak a saját építésű szerveren tudok válaszokat adni.

Ha nem ilyen környezetben van a WordPress, akkor kutatni kell, ami óradíjas munka:

ügyelet/hotline: +36-20-4242498 viktor@szepe.net skype: szepe.viktor

Köszönöm,
Mivelhogy tényleg csak ez az egy plugin okoz problémát (pedig viszonylag sokat használok) ezért inkább megoldom másképpen a nyelvi fájl frissítés letiltását.

Még egyszer köszönöm a segítséget!

1 kedvelés