我使用以下代码在woocommerce结帐中添加自定义订单字段:
function delivery_time_slots_array () {
return array(
'' => _('Choose a time slot'),
'5pm - 6pm' => __('5pm - 6pm', 'woocommerce'),
'6pm - 7pm' => __('6pm - 7pm', 'woocommerce'),
'7pm - 8pm' => __('7pm - 8pm', 'woocommerce'),
'8pm - 9pm' => __('8pm - 9pm', 'woocommerce')
);
}
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
$fields['order']['order_delivery_time'] = array(
'type' => 'select',
'label' => __('Delivery time (choose an hour slot between 5pm & 9pm)', 'woocommerce'),
'class' => array('form-row-wide'),
'required' => true,
'options' => delivery_time_slots_array()
);
然后,后面跟着下面的代码,用字段值更新order meta:
add_action( 'woocommerce_checkout_update_order_meta', 'custom_checkout_field_update_order_meta', 10, 2 );
function custom_checkout_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST['order_delivery_time'] ) ) {
update_post_meta( $order_id, 'Delivery time', sanitize_text_field($_POST['order_delivery_time']) );
}
}
<li class="delivery_slot">
<?php _e( 'Delivery Slot', 'woocommerce' ); ?>
<strong><?php
$delivery_slots = delivery_time_slots_array();
$delivery_slot = get_post_meta($order_id, 'Delivery time', true);
if( isset($delivery_slots[$delivery_slot]) )
echo $delivery_slots[$delivery_slot];
?></strong>
如果将它附加到order-details.php
模板中的任何一个钩子上,那么$order
对象将在回调函数中可用
function so_34215698_display_order_meta( $order ){
$delivery_slots = delivery_time_slots_array()
$delivery_slot = get_post_meta($order->id, 'Delivery time', true);
if( isset($delivery_slots[$delivery_slot]) )
echo $delivery_slots[$delivery_slot];
}
add_action( 'woocommerce_order_details_after_order_table', 'so_34215698_display_order_meta' );
我有一个WooCommerce商店页面,它完美地展示了我所有的产品。此页面也设置为设置中的“商店”页面。现在我想要一个叫做首页的第二个页面,它应该使用与商店页面相同的模板。( 我使用的是woocommerce的github中的标准归档产品模板。 我可以看到正在加载的模板,如标题,但某些woocommerce函数不会返回预期值。woocommerce\u-before\u-shop\u循环不会返回任
我正在测试DynamoDB表,希望使用关键字“dev”为prod和dev环境设置不同的表名,用于开发,用于生产。 我有一个POJO 在Prod上,我希望它的名字是abc_xy_Prod_MyProjectName_Employee。 所以,我写了一个TableNameResolver 这是通过创建一个名为abc_xy_prod_MyProjectName_Employee in productio
我有一个具有20个属性的对象。 其中有些属性设置为值,有些未定义。当I!如何将未显示键值的设置为?
这是我的烤面包机功能代码:
本文向大家介绍C#自定义DataGridViewColumn显示TreeView,包括了C#自定义DataGridViewColumn显示TreeView的使用技巧和注意事项,需要的朋友参考一下 我们可以自定义DataGridView的DataGridViewColumn来实现自定义的列,下面介绍一下如何通过扩展DataGridViewColumn来实现一个TreeViewColumn 1.Tre
我试图在单个产品页面上显示自定义文本“price only visible for logged in users”,但仅当,具有当前中的值时。 当加载单个产品页面时,我找不到实现当前产品post_id的正确SQL查询。 下面是我的代码: