Настроить

Несколько интернет-магазинов WooCommerce на одной многосайтовой установке WordPress, то есть один файл functions.php, в который можно добавлять пользовательские функции для всех интернет-магазинов.

Ниже цены продукта на каждой странице продукта отображается динамическая текстовая строка при соблюдении определенных условий; например, учитывая цену продукта, рассчитайте и отобразите ежемесячную цену продукта, если клиент выберет заказ с помощью спреда.

Интернет-магазины специфичны для каждой страны, поэтому у каждого свой язык.


вопрос

Я знаком с Python, а не с PhP.

В зависимости от языка сайта, текстовая строка на этом языке должна отображаться.

Например, Спред платеж от … если веб-сайт на английском и Gespreid betalen vanaf … если на голландском.

Я создал функцию set_language_grenke_text() чтобы проверить код страны с именем домена, а затем создать переменные для текстовой строки.

Кроме того, я создал grenke_text() для вычисления месячной цены на основе цены продукта и отображения текстовой строки на странице продукта с учетом определенных условий, касающихся удержания цены продукта.

grenke_text() должен использовать переменные, созданные в set_language_grenke_text() , но не делает этого, и я не уверен, где объявлять глобальные переменные, а где нет. Или если это проблема вообще.


Код

 function set_language_grenke_text() { global $spread_pay_text_start; global $spread_pay_text_end; global $slug; // check if german or dutch website // if (strpos($domain, '.nl') !== false) { // define spread payment text // $spread_pay_text_start = 'Bedrijfsmatig leasen vanaf '; $spread_pay_text_end = ' p/m'; // spread payment page info slug $slug = '/leasen-via-grenke/'; } else if (strpos($domain, '.de') !== false) { // define spread payment text // $spread_pay_text_start = 'Business-Leasing von '; $spread_pay_text_end = ' p/m'; // spread payment page info slug $slug = '/leasing-ueber-grenke/'; } } //add_action( 'woocommerce_single_product_summary', 'my_custom_action', 15 ); // insert Grenke leasing on product page for products from €500 excl. VAT function grenke_text() { global $product; global $spread_pay_text_start; global $spread_pay_text_end; global $slug; // set minimum and maximum product price for Grenke $min_amount = 500; // set minimum and maximum payment period for Grenke $min_period = 15; $max_period = 60; // set Grenke factor for 60 months for up to €2.500 (2019) $factor = 2.51; // check if product exists // if ($product) { // get product price // $product_price = $product-{amp}gt;get_price(); // compute PartPay product spread price // $product_price_spread = number_format($product_price / 100 * $factor, 2, ',', '.'); // get shop's currency // $currency = get_woocommerce_currency_symbol(); // define echo line $start_echo = "{amp}lt;u{amp}gt;{amp}lt;div class="spread_payment"{amp}gt;{amp}lt;a href="https://"; $middle_echo = "{amp}lt;strong style="display: inline"{amp}gt;{amp}lt;font color="#931914"{amp}gt;"; $finish_echo = "{amp}lt;/strong{amp}gt;{amp}lt;/font{amp}gt;{amp}lt;/a{amp}gt;{amp}lt;/div{amp}gt;{amp}lt;/u{amp}gt;"; // get domain $domain = $_SERVER['SERVER_NAME']; // define spread payment text // $spread_payment_text = $start_echo.$domain.$slug.""{amp}gt;".$spread_pay_text_start.$middle_echo.$currency.$product_price_spread.$spread_pay_text_end.$finish_echo; // echo the spread_payment_text if conditions hold // if ($product_price {amp}gt;= $min_amount) { echo $spread_payment_text; } } } // define shortcode for function add_action( 'grenke_text', 'grenke_text', 10 ); 

Как правильно получить переменные, определенные в set_language_grenke_text() в grenke_text() ?

Называй свою функцию вот так

 function set_language_grenke_text() { global $spread_pay_text_start; global $spread_pay_text_end; global $slug; // check if german or dutch website // if (strpos($domain, '.nl') !== false) { // define spread payment text // $spread_pay_text_start = 'Bedrijfsmatig leasen vanaf '; $spread_pay_text_end = ' p/m'; // spread payment page info slug $slug = '/leasen-via-grenke/'; } else if (strpos($domain, '.de') !== false) { // define spread payment text // $spread_pay_text_start = 'Business-Leasing von '; $spread_pay_text_end = ' p/m'; // spread payment page info slug $slug = '/leasing-ueber-grenke/'; } } add_action( 'init', 'set_language_grenke_text' ); 
skndrkhtr5

новый участник этого сайта. Будьте внимательны, спрашивая разъяснения, комментируя и отвечая. Проверьте наш

Кодекс поведения

,