将自定义数据添加到 wordpress 客户订单
Adding custom data to wordpress customer order
我需要从传入的 URL 中捕获用于跟踪引荐来源的变量,并将其附加到 wordpress/woocommerce 中的订单。目前在主题 header.php 文件中我有:
if(!empty($_GET['refID'])) $_SESSION['refID'] = $_GET['refID'];
然后,在我的主题 functions.php 文件中,我有:
if(!empty($_SESSION['refID'])) $rID = $_SESSION['refID'];
else $rID = "no var set";
add_action( 'woocommerce_checkout_update_order_meta', 'my_add_order_meta', 10, 2 );
function my_add_order_meta( $order_id, $rID ) {
update_post_meta( $order_id, 'refID', $rID );
}
session变量出现在WP session中,但是在发布后的顺序中没有出现。我使用 WP/woocommerce 的经验很少,想知道这是否是正确的方法?
您正在设置会话变量,但并未使用它...我相信您的函数应该更类似于以下内容:
add_action( 'woocommerce_checkout_update_order_meta', 'my_add_order_meta' );
function my_add_order_meta( $order_id ) {
// Get the stored refID
$refID = isset( $_SESSION['refID'] ) ? $_SESSION['refID'] : null;
// Update the refID meta
update_post_meta( $order_id, 'refID', $refID );
}
由于某些未知原因,变量没有从会话传递到 $rID。通过使用实际会话变量,函数现在将附加数据发布到订单。我还在函数调用中用 $rID 替换了 $posted:
add_action( 'woocommerce_checkout_update_order_meta', 'my_add_order_meta', 10, 2 );
function my_add_order_meta( $order_id, $posted ) {
update_post_meta($order_id, 'refID', $_SESSION['refID']);
}
我需要从传入的 URL 中捕获用于跟踪引荐来源的变量,并将其附加到 wordpress/woocommerce 中的订单。目前在主题 header.php 文件中我有:
if(!empty($_GET['refID'])) $_SESSION['refID'] = $_GET['refID'];
然后,在我的主题 functions.php 文件中,我有:
if(!empty($_SESSION['refID'])) $rID = $_SESSION['refID'];
else $rID = "no var set";
add_action( 'woocommerce_checkout_update_order_meta', 'my_add_order_meta', 10, 2 );
function my_add_order_meta( $order_id, $rID ) {
update_post_meta( $order_id, 'refID', $rID );
}
session变量出现在WP session中,但是在发布后的顺序中没有出现。我使用 WP/woocommerce 的经验很少,想知道这是否是正确的方法?
您正在设置会话变量,但并未使用它...我相信您的函数应该更类似于以下内容:
add_action( 'woocommerce_checkout_update_order_meta', 'my_add_order_meta' );
function my_add_order_meta( $order_id ) {
// Get the stored refID
$refID = isset( $_SESSION['refID'] ) ? $_SESSION['refID'] : null;
// Update the refID meta
update_post_meta( $order_id, 'refID', $refID );
}
由于某些未知原因,变量没有从会话传递到 $rID。通过使用实际会话变量,函数现在将附加数据发布到订单。我还在函数调用中用 $rID 替换了 $posted:
add_action( 'woocommerce_checkout_update_order_meta', 'my_add_order_meta', 10, 2 );
function my_add_order_meta( $order_id, $posted ) {
update_post_meta($order_id, 'refID', $_SESSION['refID']);
}