- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 Magento Stackexchange 上问过这个问题没有任何成功,所以我现在在这里问。
我正在使用 Magento Community Edition 1.9.0.1 并正确创建和注册了我的模块,但我似乎无法检测到运输方式。基本上,如果选择了统一费率 或免费送货,我想隐藏货到付款。这是我的观察者类代码:
class Kol_PaymentToggle_Model_Observer
{
public function paymentMethodIsActive(Varien_Event_Observer $observer) {
$event = $observer->getEvent();
$method = $event->getMethodInstance();
$result = $event->getResult();
$quote = $observer->getEvent()->getQuote();
$shippingMethod = $quote->getShippingAddress()->getShippingMethod();
if($shippingMethod == "standardshipping" || $shippingMethod == "free") {
if($method->getCode() == 'cashondelivery' ) {
$result->isAvailable = false;
}
}
}
}
我猜我没有使用正确的送货方式代码名称或付款方式代码名称,但我不确定。有人有什么建议吗?
编辑:我只启用了 3 种送货方式:
编辑 2:config.xml
的输出<?xml version="1.0"?>
<config>
<modules>
<Kol_PaymentToggle>
<version>0.0.1</version>
</Kol_PaymentToggle>
</modules>
<frontend>
<events>
<payment_method_is_active>
<observers>
<paymentfilter_payment_method_is_active>
<type>singleton</type>
<class>Kol_PaymentToggle_Model_Observer</class>
<method>paymentMethodIsActive</method>
</paymentfilter_payment_method_is_active>
</observers>
</payment_method_is_active>
</events>
</frontend>
</config>
希望这些额外的信息能够对我有所帮助!
最佳答案
至于我得到的,你试图隐藏一些基于送货方式的付款方式。为此,您根本不需要观察事物。只要跟着我,你就可以做到这一点,
每个方法(在一个页面中 check out )将选择的方法发布到下一个级别。这样您就可以在付款方式级别获得选择的送货方式。只需打印
中的帖子内容app/design/frontend/base/default/template/checkout/onepage/payment/methods.phtml
在此添加下面一个,
<?php print_r($_POST); ?>
现在您可以获得上一步选择的运输方式。请注意,现在,您可以在同一个文件中添加简单的逻辑(if else)条件来隐藏付款,
例如这里我想隐藏支票/汇票
支付方式,如果送货方式是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;
}
}
?>
在这里,
if($_POST['shipping_method'] == 'flatrate_flatrate') {
if($_code == 'checkmo') {
continue;
}
}
检查送货方式并跳过我们不想显示的付款方式。而已。如果您有任何疑问,请在这里发表评论。
注意:
shipping_method => flatrate_flatrate
paymet_method => checkmo
关于php - Magento - OnePage Checkout - 根据运输方式隐藏付款方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26604267/
我有一个Rails应用程序,它的搜索系统取决于elasticsearch,我已经使用盆景插件将其推到heroku上,但是每当我尝试在我的应用程序上搜索内容时,都会在日志中给我这个错误。 2017-07
有什么方法可以禁用 Magento 中的购物卡/结账/送货选项吗? 我正在开发一个产品比较网站,其价格是从联属网站列出的。 我实际上并没有在我的网站上销售任何东西。 最佳答案 aDVo,如果禁用以下m
这是关于 iOS 设备蓝牙配件开发的指导请求。 公开可用的文档/讨论似乎有限;我认为这是由于 MFI NDA。 如果配件开发像一般的 iOS 开发一样易于访问,我没有找到我期望的 iOS 蓝牙配件的数
我有下一个问题: 我在名为的汽车的榻榻米中有一个水桶。 我在Elasticsearch中具有索引-名为测试 我映射了我的文档。 在 elasticsearch 配置中,我设置了: couchbase.
我遇到了 woocommerce 运输问题,这是我在购物车页面上遇到的错误。 Fatal error: Call to a member function get_label() on null in
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
您好,我正在使用 WooCommerce 为客户创建一个 wordpress 网站。该站点已完成,但客户希望能够从 shop_order 页面创建发货。我已经弄明白了大部分,问题是我对 UPS API
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
用户从桶中选择 1 到 {N} 个产品 对于每个产品,供应商提供 {N} 个报价 我想给用户机会告诉他 我想要的输出: 如果您从供应商 (A) 处购买 5 件产品的总成本为 87 美元 如果您从供应商
FedEx 运输 API 是否具有 SOAP 端点?我找不到 WSDL 端点。 最佳答案 自从这里的其他 2 个答案以来,他们的网站已经更改。 最直接的答案是他们没有经典的 WSDL 端点,您只需在其
我正在将 Nodejs UPS 运输 API 与我的网站集成。我正在使用this模块。我使用了取货API。但它抛出错误 Missing or invalid AccountNumber UPS 。添加
我是一名优秀的程序员,十分优秀!