Ich versuche, eine Datenbank abzufragen und die Ergebnisse an update_post_meta
函数。但是不确定我是否正确构建了这个,或者我的 $order_id
weiterzuleiten. Gibt es bei der Verwendung ein Problem?
Sobald eine Bestellung aufgegeben wurde, muss ich das Post-Meta mit dem aktuell angemeldeten Benutzer und den Abfrageergebnissen für die aktuelle Bestellung aktualisieren, daher dachte ich, der woocommerce_thankyou
-Hook wäre sinnvoll, aber das Post-Meta wird nach der Bestellung nicht geschrieben abgeschlossen. < /p>
add_filter( 'woocommerce_thankyou', 'my_function', 10, 2); function my_function( $result, $order_id ) { // Load the global $post global $woocommerce, $post; // Get the post ID $order_id = $post->ID; // Then you can get the order object $order = wc_get_order( $order_id ); $user_ID = get_current_user_id(); //SQL global $wpdb; return $wpdb->get_var("SELECT SUM(b03_woocommerce_order_itemmeta.meta_value) FROM b03_woocommerce_order_itemmeta JOIN b03_woocommerce_order_items ON b03_woocommerce_order_itemmeta.order_item_id = b03_woocommerce_order_items.order_item_id JOIN b03_posts ON b03_woocommerce_order_items.order_id = b03_posts.ID JOIN b03_postmeta ON b03_posts.ID = b03_postmeta.post_id WHERE b03_posts.post_type = 'shop_order' AND b03_woocommerce_order_itemmeta.meta_key = 'trees_planted' AND b03_postmeta.meta_value = $user_ID AND b03_postmeta.meta_key = '_customer_user' AND b03_posts.ID = $order_id"); update_post_meta( $order_id, 'trees',$wpdb); }
Irgendwelche Vorschläge, wie man damit am besten umgeht?
您的代码尝试包含多个错误和错误:
woocommerce_thankyou
是一个操作钩子,而不是过滤器钩子$order_id
传递给回调函数,$result
不适用$wpdb->prefix
与b03_
,这可以使其动态$wpdb
是一个对象global $woocommerce、$post;
是多余的所以你得到:
注意:因为您使用的是自定义 SQL 查询,其中数据/结果在 WooCommerce 中一般/默认情况下不存在,但仅针对您而言,我已将其替换为我的回答固定值 10。根据需要进行调整!