对匿名用户不显示添加购物车按钮
指定Hook:
hook_form_alter
'#access' => !is_anonymous
定制添加到购物车表单
如果觉得默认的购物车表单组件不够丰富,可以使用表单修改hook,也可以使用下面更加简洁的方法:
拓展代码:commerce_cart\Form\AddToCartForm.php
在这可以重写任何方法.
使用hook:hook_entity_type_build
,去切换你自己的AddToCartForm代码:
/**
* Implements hook_entity_type_build().
*/
function mymodule_entity_type_build(array &$entity_types) {
$entity_types['commerce_order_item']->setFormClass('add_to_cart', '\Drupal\mymodule\Form\AddToCartForm');
}
如果你发现你的代码不生效,可能是优先级不够,可以使用hook_module_implements_alter
或者module_set_weight
去调整优先级。
修改产品twig变量
使用hook:hook_preprocess_commerce_product
,去调整变量:
function mymodule_preprocess_commerce_product(&$variables) {
$product = $variables['elements']['#commerce_product'];
...
}