Реализовать перевод страницы Woocommerce Checkout в PHP - PullRequest
0 голосов
/ 12 апреля 2020

У меня была проблема с переводом страницы оформления заказа и проблемами совместимости с WPML, с помощью друга, который сейчас недоступен, он создал файл PHP для установки текста метки полей на основе текущего языка посетителей. , Все работает нормально, теперь я могу добавлять новые поля в панель инструментов и переводить их в этот файл PHP; но моя проблема сейчас в том, что некоторые из новых типов полей являются переключателями или флажками, и я не знаю, как перевести опции, используя тот же метод. Пожалуйста, смотрите код ниже, и ваша помощь будет высоко оценена.

<?php
/**
 * Checkout billing information form
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/checkout/form-billing.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version kof the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see     https://docs.woocommerce.com/document/template-structure/
 * @package WooCommerce/Templates
 * @version 3.6.0
 * @global WC_Checkout $checkout
 */

defined( 'ABSPATH' ) || exit;
?>
<div class="woocommerce-billing-fields">
    <?php if ( wc_ship_to_billing_address_only() && WC()->cart->needs_shipping() ) : ?>

        <h3><?php esc_html_e( 'Billing &amp; Shipping', 'woocommerce' ); ?></h3>

    <?php else : ?>

        <h3><?php esc_html_e( 'Billing details', 'woocommerce' ); ?></h3>

    <?php endif; ?>

    <?php do_action( 'woocommerce_before_checkout_billing_form', $checkout ); ?>

    <div class="woocommerce-billing-fields__field-wrapper">
        <?php
                $current_language = ICL_LANGUAGE_CODE;
        $fields = $checkout->get_checkout_fields( 'billing' );
        foreach ( $fields as $key => $field ) {
                        if($key == "billing_first_name"){
                            if(isset($current_language) && $current_language == "ar"){
                                $field['label'] = "الاسم";
                            }else{
                                $field['label'] = "First Name";
                            }
                        }else if($key == "billing_last_name"){
                            if(isset($current_language) && $current_language == "ar"){
                                $field['label'] = "اللقب";
                            }else{
                                $field['label'] = "Last Name";
                            }
                        }else if($key == "billing_country"){
                            if(isset($current_language) && $current_language == "ar"){
                                $field['label'] = "الدولة";
                            }else{
                                $field['label'] = "Country";
                            }
                        }else if($key == "billing_address_1"){
                            if(isset($current_language) && $current_language == "ar"){
                                $field['label'] = "عنوان الشارع";
                            }else{
                                $field['label'] = "Street Address";
                            }
                        }else if($key == "billing_city"){
                            if(isset($current_language) && $current_language == "ar"){
                                $field['label'] = "المدينة";
                            }else{
                                $field['label'] = "City";
                            }
                        }else if($key == "billing_phone"){
                            if(isset($current_language) && $current_language == "ar"){
                                $field['label'] = "رقم الجوال";
                            }else{
                                $field['label'] = "Mobile No.";
                            }
                        }else if($key == "billing_email"){
                            if(isset($current_language) && $current_language == "ar"){
                                $field['label'] = "البريد الإلكتروني";
                            }else{
                                $field['label'] = "Email";
                            }
                        }else if($key == "gender"){
                            if(isset($current_language) && $current_language == "ar"){
                                $field['label'] = "النوع";
                            }else{
                                $field['label'] = "Gender";
                            }
                        }     
            woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
        }
        ?>
    </div>

    <?php do_action( 'woocommerce_after_checkout_billing_form', $checkout ); ?>
</div>

<?php if ( ! is_user_logged_in() && $checkout->is_registration_enabled() ) : ?>
    <div class="woocommerce-account-fields">
        <?php if ( ! $checkout->is_registration_required() ) : ?>

            <p class="form-row form-row-wide create-account">
                <label class="woocommerce-form__label woocommerce-form__label-for-checkbox checkbox">
                    <input class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" id="createaccount" <?php checked( ( true === $checkout->get_value( 'createaccount' ) || ( true === apply_filters( 'woocommerce_create_account_default_checked', false ) ) ), true ); ?> type="checkbox" name="createaccount" value="1" /> <span><?php esc_html_e( 'Create an account?', 'woocommerce' ); ?></span>
                </label>
            </p>

        <?php endif; ?>

        <?php do_action( 'woocommerce_before_checkout_registration_form', $checkout ); ?>

        <?php if ( $checkout->get_checkout_fields( 'account' ) ) : ?>

            <div class="create-account">
                <?php foreach ( $checkout->get_checkout_fields( 'account' ) as $key => $field ) : ?>
                    <?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
                <?php endforeach; ?>
                <div class="clear"></div>
            </div>

        <?php endif; ?>

        <?php do_action( 'woocommerce_after_checkout_registration_form', $checkout ); ?>
    </div>
<?php endif; ?>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...