在woocommerce中,我试图向现有的php代码中添加额外的代码,该代码将值存储到数据库中的advanced customer字段中。
如您所见,我通过添加不同的值来计算值“Kontostandeintrag”,并将该值存储在post_meta的“Kontostandeintrag”字段中。我对每个订单行都这样做。
这工作罚款。
作为下一步,我想阅读user_meta中的现有客户字段“_kontostandaktuell”(针对订单行的客户),将实际值“Kontostandeintrag”添加到此字段,并再次使用此字段的总和值更新字段“_kontostandaktuell”。因此,在运行完所有订单行之后,我应该在每个客户的用户元字段“\u kontostandaktuell”中获得所有“Kontostandeintrag”值的总和。
获取用户html" target="_blank">自定义元数据值并在WooCommerce中更新
我想扩展的现有代码是:
add_filter('woe_get_order_value_Kontostandeintrag', function( $value, $order, $fieldname ) {
$id = $order->get_id();
$value =get_post_meta($id,"GS-Bargeldeinzahlung",true) + $order->get_total() + get_post_meta($id,"GS-Mitgliedsbeitrag",true) + get_post_meta($id,"GS-Nachlass",true) + get_post_meta($id,"GS-Guthabenkonto",true);
global $wpdb;
$data = array("meta_value" =>$value);
$where = array("post_id"=>$id,"meta_key" =>"Kontostandeintrag");
$wpdb->update( "wp_postmeta", $data, $where );
return $value;
},10,3);
由于Woocommerce 3,您的代码有点过时,不需要使用任何SQL查询。因此,我在可用的WC\u顺序
对象上使用了一些WC\u数据
方法,重新访问了您的代码。
另外,在这个函数中,我们从用户元键“_kontostandaktuell”中获取元值,然后更新该元值,并将计算值添加到其中。
代码:
add_filter('woe_get_order_value_Kontostandeintrag', 'filter_get_order_value_kontostandeintrag', 10, 3 );
function filter_get_order_value_kontostandeintrag( $value, $order, $fieldname ) {
// Calculation from different order meta values
$value = $order->get_total() +
$order->get_meta('GS-Bargeldeinzahlung') +
$order->get_meta('GS-Mitgliedsbeitrag') +
$order->get_meta('GS-Nachlass') +
$order->get_meta('GS-Guthabenkonto');
// Update order meta value for "Kontostandeintrag" key
$order->update_meta_data('Kontostandeintrag', $value );
$order->save(); // Save to database
// Get the User ID from order
$user_id = $order->get_customer_id();
// Get user meta value for "_kontostandaktuell" key
$kontostandaktuell = get_user_meta( $user_id, '_kontostandaktuell', true );
// Update user meta value for "_kontostandaktuell" key
update_user_meta( $user_id, '_kontostandaktuell', $kontostandaktuell + $value );
return $value;
}
它应该工作。
相关WordPress用户函数文档:get\u user\u meta()
和update\u user\u meta()
添加(与您的评论相关):
要重置_kontostandaktuell
user字段,您应该从代码中删除:
// Get user meta value for "_kontostandaktuell" key
$kontostandaktuell = get_user_meta( $user_id, '_kontostandaktuell', true );
并从中删除update_user_meta()
函数$kontostanaktuell
,因此您将有:
update_user_meta( $user_id, '_kontostandaktuell', $value );
null 我希望能够从数组中获取某些元值,例如、、、、等。 这个PHP代码段将添加一个字段的订单电子邮件,但我如何编辑这一点,我可以让它显示一些元从数组? 对于特定的WooCommerce订单,我使用 这表明:
为什么我不能从Woocommerce签出字段中检索数据,以便在订单处理时更新订阅数据? 我想根据客户结帐时的频率请求更新下一个续订日期。这是我的密码: 1) 设置签出字段: 2) 更新订单元数据。这将在客户订单上创建两个自定义字段,并更新订阅上的计费间隔: 3) 更新续约日期 对于最后一部分,我可以使用我选择的虚拟日期更新续约日期(例如:,但当我试图让它读取字段时,它会恢复为默认值。 这是我尝试过
在Woocommerce管理屏幕中,我试图使用订单行元数据显示一个按钮,该按钮将打开一个包含dropship供应商URL的新窗口。我已成功从订单上的产品中提取供应商URL,并将其推送到订单行项目。 我可以将元数据更改为按钮,但其结果是包含自定义选项的其他自定义字段被删除。 这是我添加到文件的完整代码 这些图像显示了使用最后一段代码之前和之后的情况。 之前: 之后: 我的代码哪里出了问题?我试图实现
我有一种不同的邮政订单,我试图返回,但我找不到任何有答案的地方。我使用wp_query尝试按元值列表排序帖子。然而,非标准orderby选项做什么,我试图实现。 我的元值存储为逗号列表字符串,如下所示: 1, 5, 10, 3, 21, 6 然后我获取这些值并将其分解为如下数组: 我做了一个标准的wp_query,但问题是,我试图按照我的$banner_nums变量中的实际顺序来排列这些帖子的显示
我有一个WooCommerce订单的自定义元数据,现在我想在结账后在感谢页面上显示它,但是,数据不可用。数据保存在管理员中,我似乎无法访问它。 但是当我转储时,我的元数据不存在。 我正在使用; 保存数据,但转储
在woocommerce单页产品上,我创建了一个自定义字段。我希望它的值在订单生效时存储在订单元中。经过几个小时的研究,我还没有找到任何解决办法来结束!但我相信我已经很接近了。。。 这是我的实际代码: 以下是我目前掌握的情况: 这就是我想要的: 如何将此自定义字段数据保存为订单元数据,以便在“自定义字段”元框中显示值。 任何帮助都很感激。