使用短代码在任何地方显示WooCommerce优惠券输入字段

问题描述 投票:1回答:1

我有一个小项目,我需要将Woocommerce优惠券字段插入任何页面,但这对我来说似乎很复杂。我在谷歌搜索了这个,但没有任何关于此的资源。找到关于插入字段的代码。

插入文本块此代码:

<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 -->

这会生成表单,但没有其他代码可以将其处理到页面中?

可以通过短代码生成吗?

php wordpress woocommerce shortcode coupon
1个回答
2
投票

以下自定义短代码将显示文本输入字段(带有提交按钮),用户可以在其中输入要应用的优惠券代码。

用法:[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

© www.soinside.com 2019 - 2024. All rights reserved.