如何删除 prestashop 1.6.1 上的送货运输步骤?
How to remove delivery shipping step on prestashop 1.6.1?
我是 prestashop 的新手,我在删除送货运输步骤时遇到了很大的麻烦,因为我只销售虚拟产品。我正在使用 prestashop 1.6.1.
我知道我必须修改 order-carrier.tpl
文件,并且已经关注了一些帖子,但无法正确完成。
你们中有谁知道如何做到这一点吗?
在购物中-cart.tpl,移除电话订购-carrier.tpl。如果您不使用一个 pagecheckout,在 orderController.php 中,您必须将所有重定向更改为步骤 2(运输方式选择),更改为重定向步骤 3 Tools::redirect('index.php?controller=order&step=2');至 Tools::redirect('index.php?controller=order&step=3');
你好,这就是我所做的
覆盖 AdminOrderPreferencesController 并添加布尔配置字段以切换此功能
$this->fields_options = array(
[...]
'PS_ORDER_PROCESS_BYPASS_SHIPPING' => array(
'title' => $this->l('Bypass shipping step'),
'hint' => $this->l('Do not show shipping step in order process.'),
'validation' => 'isBool',
'cast' => 'intval',
'type' => 'bool'
)
);
您现在可以在 首选项 > 订单
下的后台中找到切换按钮
覆盖 OrderController 并在 init()
方法中添加一个 if
以在控制器初始化时将当前步骤设置为 支付步骤 投放步骤
public function init()
{
global $orderTotal;
parent::init();
$this->step = (int)Tools::getValue('step');
// HERE IT IS
if((bool)Configuration::get('PS_ORDER_PROCESS_BYPASS_SHIPPING') && $this->step == self::STEP_DELIVERY){
$this->step = self::STEP_PAYMENT;
}
if (!$this->nbProducts) {
$this->step = -1;
}
也绕过 initContent()
方法中付款步骤的 CGV 检查验证。
如果你不这样做,CGV 将永远不会被检查,它将在 交付步骤 重定向你,你会告诉他他实际上在 付款步骤 [=54] =],他会再次检查CGV,他会做同样的重定向...而你在无限循环中
case OrderController::STEP_PAYMENT:
$cgv = Tools::getValue('cgv') || $this->context->cookie->check_cgv;
if (
!(bool)Configuration::get('PS_ORDER_PROCESS_BYPASS_SHIPPING') && // HERE IT IS
$is_advanced_payment_api === false && Configuration::get('PS_CONDITIONS')
&& (!Validate::isBool($cgv) || $cgv == false)
) {
Tools::redirect('index.php?controller=order&step=2');
}
将配置参数传给视图修改显示
$this->context->smarty->assign('bypass_shipping_step', (bool)Configuration::get('PS_ORDER_PROCESS_BYPASS_SHIPPING'));
在您看来,您是否使用一些 if
来设计风格?
在 order-steps.tpl 中,您可以在第四个 li
周围添加一个 {if not $bypass_shipping_step}...{/if}
来隐藏它,并执行以下操作:
{if $bypass_shipping_step}
<style>
ul.step li{
width:25%;
}
</style>
{/if}
或导入专用样式表,这样会更干净。
希望对您有所帮助。
我是 prestashop 的新手,我在删除送货运输步骤时遇到了很大的麻烦,因为我只销售虚拟产品。我正在使用 prestashop 1.6.1.
我知道我必须修改 order-carrier.tpl
文件,并且已经关注了一些帖子,但无法正确完成。
你们中有谁知道如何做到这一点吗?
在购物中-cart.tpl,移除电话订购-carrier.tpl。如果您不使用一个 pagecheckout,在 orderController.php 中,您必须将所有重定向更改为步骤 2(运输方式选择),更改为重定向步骤 3 Tools::redirect('index.php?controller=order&step=2');至 Tools::redirect('index.php?controller=order&step=3');
你好,这就是我所做的
覆盖 AdminOrderPreferencesController 并添加布尔配置字段以切换此功能
$this->fields_options = array(
[...]
'PS_ORDER_PROCESS_BYPASS_SHIPPING' => array(
'title' => $this->l('Bypass shipping step'),
'hint' => $this->l('Do not show shipping step in order process.'),
'validation' => 'isBool',
'cast' => 'intval',
'type' => 'bool'
)
);
您现在可以在 首选项 > 订单
下的后台中找到切换按钮
覆盖 OrderController 并在 init()
方法中添加一个 if
以在控制器初始化时将当前步骤设置为 支付步骤 投放步骤
public function init()
{
global $orderTotal;
parent::init();
$this->step = (int)Tools::getValue('step');
// HERE IT IS
if((bool)Configuration::get('PS_ORDER_PROCESS_BYPASS_SHIPPING') && $this->step == self::STEP_DELIVERY){
$this->step = self::STEP_PAYMENT;
}
if (!$this->nbProducts) {
$this->step = -1;
}
也绕过 initContent()
方法中付款步骤的 CGV 检查验证。
如果你不这样做,CGV 将永远不会被检查,它将在 交付步骤 重定向你,你会告诉他他实际上在 付款步骤 [=54] =],他会再次检查CGV,他会做同样的重定向...而你在无限循环中
case OrderController::STEP_PAYMENT:
$cgv = Tools::getValue('cgv') || $this->context->cookie->check_cgv;
if (
!(bool)Configuration::get('PS_ORDER_PROCESS_BYPASS_SHIPPING') && // HERE IT IS
$is_advanced_payment_api === false && Configuration::get('PS_CONDITIONS')
&& (!Validate::isBool($cgv) || $cgv == false)
) {
Tools::redirect('index.php?controller=order&step=2');
}
将配置参数传给视图修改显示
$this->context->smarty->assign('bypass_shipping_step', (bool)Configuration::get('PS_ORDER_PROCESS_BYPASS_SHIPPING'));
在您看来,您是否使用一些 if
来设计风格?
在 order-steps.tpl 中,您可以在第四个 li
周围添加一个 {if not $bypass_shipping_step}...{/if}
来隐藏它,并执行以下操作:
{if $bypass_shipping_step}
<style>
ul.step li{
width:25%;
}
</style>
{/if}
或导入专用样式表,这样会更干净。
希望对您有所帮助。