仅限登录客户的WooCommerce支付网关

时间:2013-06-04 00:07:31

标签: wordpress plugins woocommerce

我想仅为已登录用户显示“货到付款”网关付款。显示可用付款的循环代码是:

<ul class="payment_methods methods">
    <?php
        if ( $available_gateways = $woocommerce->payment_gateways->get_available_payment_gateways() ) {
            // Chosen Method
            if ( sizeof( $available_gateways ) )
                current( $available_gateways )->set_current();

            foreach ( $available_gateways as $gateway ) {
                ?>
                <li>
                    <input type="radio" id="payment_method_<?php echo $gateway->id; ?>" class="input-radio" name="payment_method" value="<?php echo esc_attr( $gateway->id ); ?>" <?php if ($gateway->chosen) echo 'checked="checked"'; ?> />
                    <label for="payment_method_<?php echo $gateway->id; ?>"><?php echo $gateway->get_title(); ?> <?php echo $gateway->get_icon(); ?></label>
                    <?php
                        if ( $gateway->has_fields() || $gateway->get_description() ) {
                            echo '<div class="payment_box payment_method_' . $gateway->id . '" style="display:none;">';
                            $gateway->payment_fields();
                            echo '</div>';
                        }
                    ?>
                </li>
                <?php
            }
        } else {

            echo '<p>'.__( 'Sorry, it seems that there are no available payment methods for your location. Please contact us if you require assistance or wish to make alternate arrangements.', 'woocommerce' ).'</p>';

        }
    ?>
</ul>

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:0)

你的意思是使用这样的东西:

<?php if ( is_user_logged_in() ) { ... } ?> 

如果您已经知道网关ID,我猜您可以使用一些if条件。

答案 1 :(得分:0)

好的,我来自乌拉圭!,但最好在这里使用英语,如果没有多少人不理解,评论和答案将无法用于社区。

无论如何,如果用户已登录,则is_user_logged_in将返回true,如函数所示。

你已经有了$ gateway-&gt; id;在foreach循环中 。因此,您需要调整某些$ gateway-&gt; id的可见性;如果用户已登录;像这样的东西:

if($gateway->id == 123 && is_user_logged_in()){
   // something if user logged in and your gateway id
} else {
   // something else
}

您需要将123更改为您的网关ID ...此外,我不知道,但您可以获取网关名称或slug并使用该spite id。试试吧。

Suerte!

相关问题