我正在尝试根据购物车中产品的库存状态输出购物车中的预计交货日期。
我取得了一点成功,但现在我陷入了困境。
这是我到目前为止所写的。它位于 function.php 文件中
function lieferzeit() {
global $woocommerce;
$cart_items = $woocommerce->cart->get_cart();
foreach ($cart_items as $variation) {
$variation_id = $variation['variation_id'];
$variation_obj = new WC_Product_variation($variation_id);
$stock = $variation_obj->get_stock_quantity();
}
echo $stock; //outputs the in stock amount successfully
}
add_filter ( 'woocommerce_cart_collaterals', 'lieferzeit');
现在我正在尝试添加预计日期,但我被困住了
function lieferzeit() {
global $woocommerce;
$cart_items = $woocommerce->cart->get_cart();
foreach ($cart_items as $variation) {
$variation_id = $variation['variation_id'];
$variation_obj = new WC_Product_variation($variation_id);
$stock = $variation_obj->get_stock_quantity();
}
for ($i=0; $i < count($stock) ; $i++) {
echo "Voraussichtliche Lieferung Date! ";
}
}
add_filter ( 'woocommerce_cart_collaterals', 'lieferzeit');
这里必须定义日期输出。从今天起+1天到从今天起+4天。但我不知道如何管理它。
最好的输出是这种格式:
预计周五发货14.7 - 周三19.7
我什至不确定是否
for ($i=0; $i < count($stock) ; $i++) {
是正确的方法。
我有两种类型的产品,一种可以在 1-4 天内发货,另一种可以在 14-21 天内发货。现在是第二个问题。当两种类型都在购物车中时,应选择较长的运输时间。
有一些想法吗?
Update:
该代码应检查购物车中每件商品的库存数量。
如果所有商品的库存数量都大于 0,则应回显以日期形式给出的 1 到 4 个工作日的预计发货时间。
如果购物车中有一件商品的库存数量为 0 或以下,则应回显以日期形式给出的 14 - 21 个工作日的预计发货时间。即使购物车中所有其他商品的库存数量都大于 0。
工作日应为周一至周五。如果代码也能识别假期,那就太好了。圣诞节,新年等等。
Thanks
LoicTheAztec 的解决方案非常完美。现在我尝试为其添加更多选项。
如果输出function lieferzeit()
将显示在管理订单详细信息页面中。
要在侧边栏中创建自定义管理面板,我发现
add_action( 'add_meta_boxes', 'add_meta_boxes' );
function add_meta_boxes()
{
add_meta_box(
'woocommerce-order-my-custom',
__( 'Order Custom' ),
'order_my_custom',
'shop_order',
'side',
'default'
);
}
function order_my_custom()
{
echo $lieferzeit;
}
从这篇文章 https://stackoverflow.com/questions/24179529/how-to-add-custom-fields-for-woocommerce-order-page-admin
到目前为止,这有效,并且管理页面中有一个“订单自定义”选项卡。现在我尝试存储的输出function lieferzeit()
在一个变量中。
$from = str_replace($days_en, $days_ge, $from);
$to = str_replace($days_en, $days_ge, $to);
$lieferzeit = array($from, $to);
但似乎function add_meta_boxes()
and function order_my_custom()
对变量一无所知$lieferzeit
.
是否有另一种方法来存储和调用输出function lieferzeit()
?