将自定义数据添加到wordpress客户订单

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将自定义数据添加到wordpress客户订单相关的知识,希望对你有一定的参考价值。

我需要捕获一个变量,用于跟踪来自传入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 );
    }

会话变量出现在WP会话中,但在发布后没有出现在订单中。我在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替换为$ post:

    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']);   
    }

以上是关于将自定义数据添加到wordpress客户订单的主要内容,如果未能解决你的问题,请参考以下文章

将自定义 css 添加到 wordpress 中的页面模板

如何将自定义 javascript 添加到 WordPress 管理员?

将自定义批量操作添加到 Woocommerce 3 中的管理订单列表

WooCommerce:将自定义 Metabox 添加到管理订单页面

如何将自定义订单状态添加到 shopware 6

将自定义类添加到 WordPress 导航中的锚标记