如何在自定义 woocommerce 结帐字段中显示 $_SESSION 变量?
How to display a $_SESSION variable in custom woocommerce checkout field?
我可以通过查看开发工具中的“应用程序”选项卡来验证我的会话变量是否已转移到结帐页面;我有 WC 挂钩设置,允许我更改要插入数据的字段的“默认”/值。
但是,我无法让它们相互阅读。
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;
}
正如您从附图中看到的那样,我的会话变量出现在该页面上。现在,我如何让它将该会话变量添加到 $fields['order']['order_comments']['default']?
感谢任何帮助!谢谢
在访问 $_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.
我可以通过查看开发工具中的“应用程序”选项卡来验证我的会话变量是否已转移到结帐页面;我有 WC 挂钩设置,允许我更改要插入数据的字段的“默认”/值。
但是,我无法让它们相互阅读。
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;
}
正如您从附图中看到的那样,我的会话变量出现在该页面上。现在,我如何让它将该会话变量添加到 $fields['order']['order_comments']['default']?
感谢任何帮助!谢谢
在访问 $_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.