php - 如何在自定义 woocommerce 结帐字段中显示 $_SESSION 变量?

标签 php wordpress session woocommerce hook-woocommerce

我可以通过查看开发工具中的“应用程序”选项卡来验证我的 session 变量是否已转移到结账页面;我有 WC Hook 设置,允许我更改要插入数据的字段的“默认”/值。

但是,我无法让他们互相阅读。

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) {
     $fields['order']['order_comments']['label'] = "Custom Neon Details (If included)";
     $fields['order']['order_comments']['default'] = $_SESSION["customtext"];
     var_dump( $fields );
     return $fields;
}

正如您从附图中看到的,我的 session 变量存在于该页面上。现在,我如何才能将该 session 变量添加到 $fields['order']['order_comments']['default'] 中?

感谢任何帮助!谢谢。

enter image description here

最佳答案

在访问 $_SESSION 变量之前使用 session_start();:

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {

    session_start();

    $fields['order']['order_comments']['label'] = "Custom Neon Details (If included)";
    $fields['order']['order_comments']['default'] = $_SESSION["customtext"];
    var_dump( $fields );
    return $fields;
}

或者,您可以将 jQuery 与 sessionStorage 一起使用:

// set the value of the order comment field via session storage
add_action( 'wp_footer', 'set_value_order_comments_field_via_session_storage' );
function set_value_order_comments_field_via_session_storage() {
    ?>
    <script type="text/javascript">
        jQuery(function($){
            var customtext = sessionStorage.getItem("customtext");
            if ( customtext.length ) {
                $('#order_comments').val(customtext);
            }
        });
    </script>
    <?php
}

代码已经过测试并且可以工作。将其添加到事件主题的functions.php中。

关于php - 如何在自定义 woocommerce 结帐字段中显示 $_SESSION 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67081410/

相关文章:

wordpress - 从 WP-CLI 向 WordPress 帖子添加标签/类别

sql - 在 SQL 中选择到表中。它们是如何储存的?

php - 有效地将电话号码前缀数据库与电话号码匹配?

html - 响应式 Bootstrap WordPress 帖子

javascript - wordpress自定义javascript代码中的谷歌地图加载问题

session - Cassandra V3 : repair thread hangs when running on multiple nodes

django - 使用login()会丢失 session 数据

下载文件/文档时出现 PHP/SQL 问题

Php测试空字符串

php - 添加 <?php the_content(); ?> 到 WooCommerce 页面模板