Показать поле ввода купона WooCommerce в любом месте с коротким кодом - PullRequest
1 голос
/ 19 марта 2019

У меня есть небольшой проект, в котором мне нужно вставить поле купона Woocommerce на любую страницу, но мне это кажется сложным. Я искал в Google об этом, но у меня нет ресурсов по этому поводу. Нашел эти коды о вставке поля.

Вставлен в текстовый блок этот код:

<div class="redeem-coupon">
<form id="ajax-coupon-redeem">
    <p>
        <input type="text" name="coupon" id="coupon"/>
        <input type="submit" name="redeem-coupon" value="Redeem Offer" />
    </p>
    <p class="result"></p>
</form><!-- #ajax-coupon-redeem -->

И это генерирует форму, но нет другого кода, который будет обрабатывать это на странице?

Можно ли сгенерировать с помощью шорткода или еще чего-нибудь?

1 Ответ

2 голосов
/ 19 марта 2019

Следующий пользовательский шорткод отобразит поле ввода текста (с кнопкой отправки), где пользователь может ввести код купона, который будет применен.

Использование: [coupon_field] или в Php-коде echo do_shortcode("[coupon_field]");

Код:

add_shortcode( 'coupon_field', 'display_coupon_field' );
function display_coupon_field() {
    if( isset($_GET['coupon']) && isset($_GET['redeem-coupon']) ){
        if( $coupon = esc_attr($_GET['coupon']) ) {
            $applied = WC()->cart->apply_coupon($coupon);
        } else {
            $coupon = false;
        }

        $success = sprintf( __('Coupon "%s" Applied successfully.'), $coupon );
        $error   = __("This Coupon can't be applied");

        $message = isset($applied) && $applied ? $success : $error;
    }

    $output  = '<div class="redeem-coupon"><form id="coupon-redeem">
    <p><input type="text" name="coupon" id="coupon"/>
    <input type="submit" name="redeem-coupon" value="'.__('Redeem Offer').'" /></p>';

    $output .= isset($coupon) ? '<p class="result">'.$message.'</p>' : '';

    return $output . '</form></div>';
}

Код сохраняется в файле function.php вашей активной дочерней темы (или темы).Протестировано и работает.

Отображает сообщение об успехе или сообщении об ошибке после применения купона.

enter image description here

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