Translatepress Support → Kóddal itt
-
Sziasztok,
a kérésemmel együtt megoldást is hoztam a Translatepress támogatásra, wpml elég régi és nehézkes többnyelvűsíteni.
Amit kérnék (és a lentebbi kóddal megcsináltam):
– A számlát dinamikusan arra a nyelvre állítsa, ami a customer kiválasztott nyelve
– A Stringeket a kódból, ha van nyelvi fájl szintén erre a nyelvre állítsa. (Manuális számlageneráláskor se az admin nyelvét, hanem a customer nyelvét használja, amin fizetett)Ehhez csak egy fájlba kell belenyúlni:
/plugins/billingo/src/WooCommerce/Service/Billingo_Document_Generator.phpKell egy új function:
private function setLanguageFromOrder(): void
{
$trpLanguage = $this->order->get_meta('trp_language', true);
// Translatepress Plugin
if (!empty($trpLanguage)) {
$langCode = strtolower(explode('_', $trpLanguage)[0]);
if (LanguageEnum::tryFrom($langCode)) {
$this->language = LanguageEnum::from($langCode);
switch_to_locale($trpLanguage); // Switch to TRP locale (e.g. de_DE)
return;
}
}
// wpml plugin or fallback to wc_billingo_invoice_lang
$fallback = wcFlexibleIsTrue(get_option('wc_billingo_invoice_lang_wpml'))
&& !empty(get_post_meta($this->order->get_id(), 'wpml_order_language', true))
? get_post_meta($this->order->get_id(), 'wpml_order_language', true)
: get_option('wc_billingo_invoice_lang');
$this->language = LanguageEnum::tryFrom(strtolower($fallback)) ?? LanguageEnum::HU;
}Kell egy új property a class-ba:
private ?LanguageEnum $language = null;Constructorba meghívni:
$this->setLanguageFromOrder();Illetve collectDocumentData()-ba csak használni a beállított értéket:
private function collectDocumentData(): void
{
$paymentMethod = $this->resolvePaymentMethod();
$paidType = $this->resolvePaidType();
Billingo_Logger::info('Payment Currency: ' . $this->order->get_currency());
$deadline = isset($this->manualIncome['deadline'])
? (int)$this->manualIncome['deadline']
: (int)get_option("wc_billingo_paymentdue_{$this->order->get_payment_method()}");
language = $this->language->value;
$currency = $this->order->get_currency() ?: 'HUF';Ha a Billingo esetleg official beletenné a feature-t, az eredeti fallback ágon is érdemes lennie a WordPress-es “switch_to_locale()” -et meghívni, hogy a pluginba szereplő stringeket ha valaki lefordította, azok ne az admin nyelvén, hanem a customer nyelvén jelenjenek meg. (Pl: “Kupok kedvezmény”)
Még max egy külön Admin option-t érdemes lehet adni neki, hogy kapcsolható lehessen, de arra már nekem nem volt szükségem.
The topic ‘Translatepress Support → Kóddal itt’ is closed to new replies.