0

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

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

任何想法?谢谢

4

2 回答 2

0

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

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

你已经有了 $gateway->id; 在 foreach 循环内。因此,您需要为某些 $gateway->id 设置可见性;如果用户已登录;像这样的东西:

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

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

苏尔特!

于 2013-06-06T16:57:08.917 回答
0

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

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

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

于 2013-06-05T13:39:18.210 回答