至于我,你试图根据运输方式隐藏一些付款方式。为此,你根本不需要观察事物。只需跟随我,你就可以做到这一点,
每个方法(在一页中查看)都会发布选择到下一级的方法。这样您就可以获得在付款方式级别中选择的运输方式。只需打印帖子中的内容即可
app/design/frontend/base/default/template/checkout/onepage/payment/methods.phtml
在此添加以下一项,
<?php print_r($_POST); ?>
现在您可以获得上一步选择的运输方式。请注意,现在您可以在同一文件中添加简单的逻辑(if else)条件来隐藏付款,
例如这里我想隐藏check / money order
付款方式,如果运输方式是flat
。这里的付款方式代码是checkmo
。您可以通过简单地打印该变量来获取付款方式代码,例如echo $_code = $_method->getCode();
在同一个文件中。所以这里只需添加简单的 if else ,
<?php
$methods = $this->getMethods();
$oneMethod = count($methods) <= 1;
?>
<?php if (empty($methods)): ?>
<dt>
<?php echo $this->__('No Payment Methods') ?>
</dt>
<?php else:
foreach ($methods as $_method):
echo $_code = $_method->getCode();
if($_POST['shipping_method'] == 'flatrate_flatrate') {
if($_code == 'checkmo') {
continue;
}
}
?>
Here,
if($_POST['shipping_method'] == 'flatrate_flatrate') {
if($_code == 'checkmo') {
continue;
}
}
检查运输方式并跳过我们不想显示的付款方式。就是这样。如果您有任何疑问,请在此评论。
Note:
shipping_method => flatrate_flatrate
paymet_method => checkmo