在Woocommerce中,我试图向我的产品添加一个自定义元,我希望将其传递给订单。
我们有大量的产品,它们对不同的成本中心负责,因此我需要在产品管理员中设置一个选择框,我们可以选择将价值传递到订单中的成本中心。这不需要客户查看,但需要管理员在订单中以及每个月的订单导出中查看为了会计。
这是我到目前为止,这将在产品编辑页面(管理员)中显示选择框:
// Display Fields
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' );
function woo_add_custom_general_fields() {
global $woocommerce, $post;
echo '<div class="options_group">';
woocommerce_wp_select(
array(
'id' => '_select',
'label' => __( 'Cost Centre', 'woocommerce' ),
'options' => array(
'one' => __( 'MFEG', 'woocommerce' ),
'two' => __( 'YDIT', 'woocommerce' ),
)
)
);
echo '</div>';
}
// Save Fields
add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );
function woo_add_custom_general_fields_save( $post_id ){
// Select
$woocommerce_select = $_POST['_select'];
if( !empty( $woocommerce_select ) )
update_post_meta( $post_id, '_select', esc_attr( $woocommerce_select ) );
}
但它并没有将值传递给订单。
如何将此自定义字段值传递给订单?
我重温了一下你的代码。以下内容将您的产品自定义字段"成本中心"保存为隐藏的订单项目元数据,仅在每个项目的管理订单编辑页面中可见:
// Admin products: Display custom Field
add_action( 'woocommerce_product_options_general_product_data', 'product_options_general_product_data_add_field' );
function product_options_general_product_data_add_field() {
global $post;
echo '<div class="options_group">';
woocommerce_wp_select( array(
'id' => '_cost_centre',
'label' => __( 'Cost Centre', 'woocommerce' ),
'options' => array(
'MFEG' => __( 'MFEG', 'woocommerce' ), // Default displayed option value
'YDIT' => __( 'YDIT', 'woocommerce' ),
)
) );
echo '</div>';
}
// Admin products: Save custom Field
add_action( 'woocommerce_process_product_meta', 'product_options_general_product_data_save_field' );
function product_options_general_product_data_save_field( $post_id ){
if( isset( $_POST['_cost_centre'] ) )
update_post_meta( $post_id, '_cost_centre', esc_attr( $_POST['_cost_centre'] ) );
}
// Order items: Save product "Cost centre" as hidden order item meta data
add_action('woocommerce_checkout_create_order_line_item', 'save_file_type_as_order_item_meta', 20, 4);
function save_file_type_as_order_item_meta($item, $cart_item_key, $values, $order) {
if ( $cost_centre = $values['data']->get_meta('_cost_centre') ) {
$item->update_meta_data( '_cost_centre', $cost_centre ); // Save as order item (visble on admin only)
}
}
代码functions.php活动子主题(或活动主题)的文件中。测试和工作。
导出:(在StackOverFlow中,规则是一个问题对应一个答案)。
WordPress/WooCommerce基本订单导出不允许导出订单项
您将需要使用第三方插件,并根据所选插件,您将不得不添加您的订单项目自定义字段_cost_centre
为您的出口基于插件的可能性。
我对woocommerce(最新版本)中的自定义字段有问题。我需要你的帮助。 我的代码 现在我在从自定义字段获取数据时遇到问题。字段被保存到数据库中,因为在我编辑产品时,值在字段中,但在完成订单后,我无法在钩子中获取它:(我尝试使用get_post_meta、get_meta和其他方法,但都不起作用。有人知道原因吗?
在Woocommerce 3应答代码中使用将自定义产品元数据传递到订单,当从后端手动创建订单时,从后端手动添加产品时,是否可以保存和显示自定义元数据? 这是我的代码(略有改动): 当客户机从前端创建订单时,这种方法可以正常工作。但是,当管理员从后端手动创建订单并添加产品时,自定义元数据不可见。 对于手动创建的订单,如何解决此问题,允许添加产品自定义字段作为自定义订单项目数据?
当从管理员向订单添加产品时,我尝试将自定义产品元添加到订单项元。这是我的代码,它在后端什么都不做。。。
这是RESTful Web应用程序。我使用Hibernate Envers来存储历史数据。除了版本号和时间戳,我还需要存储其他详细信息(例如:IP地址和认证用户)。Envers提供了多种方法来拥有一个非常棒的自定义修订实体。我在修改实体上设置自定义数据时面临问题。 由于newRevision()方法不允许任何附加参数,因此我无法将自定义数据(如用户名和ip)传递给它。我该怎么做? Envers还提
问题内容: 这在Django 1.9中用form_kwargs修复。 我有一个看起来像这样的Django表单: 我称这种形式的东西是这样的: 登录用户在哪里。这按预期工作。 我的问题是,我现在想将此单一表单转换为表单集。我不知道的是在创建表单集时如何将会员信息传递给各个表单。根据文档来制作一个表单集,我需要做这样的事情: 然后我需要这样创建它: 现在如何以这种方式将affiliate = requ
使用,并希望将常量/参数传递给自定义映射器 我的目的地具有 Map 类型的字段