基于对以下问题的回答:
- Add custom field to product settings shipping tab and display value on additional information tab in WooCommerce
- Add custom fields to WooComerce product setting pages in the shipping tab
我设法在WooCommerce运输选项中创建了两个额外的字段:
- 用于添加装载 Jmeter 的字段
- 添加装运重量的字段
这些字段将通过管理员用户编辑字段或通过帮助我们用值预填充字段的计算来获得值。
下面的代码片段显示了通过将代码片段添加到functions.php
文件来创建字段。
add_action('woocommerce_product_options_shipping', function() {
woocommerce_wp_text_input(
array(
'id' => '_loading_meters',
'label' => __('Loading meters', 'woocommerce'),
'desc_tip' => 'true',
'description' => __( 'Vul hier de laadmeters in', 'woocommerce' ),
'type' => 'number',
'custom_attributes' => array(
'step' => 'any',
'min' => '0'
)
)
);
woocommerce_wp_text_input(
array(
'id' => '_loading_weight',
'label' => __('Loading weight', 'woocommerce'),
'desc_tip' => 'true',
'description' => __( 'Vul hier het laadgewicht in', 'woocommerce' ),
'type' => 'number',
'custom_attributes' => array(
'step' => 'any',
'min' => '0'
)
)
);
});
第二个代码段保存管理员用户手动添加的值,这个代码段也被添加到functions.php
文件中。
add_action('woocommerce_process_product_meta', function($post_id) {
$product = wc_get_product($post_id);
$num_loading_meters = isset($_POST['_loading_meters']) ? $_POST['_loading_meters'] : '';
$num_loading_weight = isset($_POST['_loading_weight']) ? $_POST['_loading_weight'] : '';
$product->update_meta_data('_loading_meters', sanitize_text_field($num_loading_meters));
$product->update_meta_data('_loading_weight', sanitize_text_field($num_loading_weight)); $product->save();
});
作为一个最终的结果,我想实现这两个字段填写自动使用计算,但仍然可以编辑的管理员用户。
负载 Jmeter 的计算:
- (长度(米))x(高度(米))/ 2.4
装载重量的计算:
- 装载 Jmeter * 1750
有人能给我指个路吗?
1条答案
按热度按时间rt4zxlrg1#
对于计算,您可以使用
$product->get_length()
和$product->get_height()
计算结果可自动保存,但请注意,如果要调整值 必须在某个地方手动指定。否则,自动计算将被手动输入的值覆盖 保存时反之亦然。
因此,您将获得: