【发布时间】:2019-11-25 02:16:06
【问题描述】:
免责声明:我是 WooCommerce 的新手。如果我的方法或我的术语有缺陷,请提出建议:)
我想要做的:客户应该能够在产品页面上选择预订日期。将产品添加到购物车后,日期应显示在购物车中。
到目前为止我的方法:我已经创建了一个带有 slug 到达日期的产品属性,并给它一个默认值(“尚未选择”)。该属性已添加到产品中,并将其配置为在产品页面上隐藏但在结帐页面上可见。之后,我在 functions.php 中创建了一个自定义字段以显示在产品页面上,并使用了 jquery datepicker。到目前为止,一切都很好。
使用钩子 woocommerce_add_cart_item_data,我可以这样设置购物车商品数据:
add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 2 );
function add_cart_item_data( $cart_item_data, $product_id ) {
write_log("adding item to cart, setting arrival date to " . $_POST["arrivaldate"]);
$cart_item_data[ "pa_arrivaldate" ] = $_POST["arrivaldate"];
return $cart_item_data;
}
然而,我想这不是设置属性值的正确方法,因为结帐页面上的行仍然填充了默认值。
我怎样才能让它工作?我什至可以将属性设置为事先未创建的值吗?
【问题讨论】:
标签: php wordpress woocommerce