我正在尝试在我的结帐页面中创建一个新步骤,我目前正在使用插件WooCommerce-Mulitstep-Checkout插件。我按照文档创建了一个新步骤(这里:http://woocommerce-multistep-checkout.com/documentation/)。所以这是我在function.php中的代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text"><br>
这是我在checkout / my-custom-step.php中的代码:
add_action('woocommerce_multistep_checkout_before_order_info', 'add_my_custom_step_with_new_field');
function add_my_custom_step_with_new_field( $checkout ) {
wc_get_template( 'checkout/my-custom-step.php', array( 'checkout' => $checkout, 'test' => "test" ) );
}
add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' );
function my_custom_checkout_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST['my_field_name'] ) ) {
update_post_meta( $order_id, 'My Field', sanitize_text_field( $_POST['my_field_name'] ) );
}
}
当我使用此代码(主要由官方文档提供)时,我在浏览器控制台上收到此错误:
获取https://localhost/mywebsite/checkout/ 500(内部服务器错误)
当我删除<h1> Step Title</h1>
<div class="my-custom-step">
<?php
woocommerce_form_field('my_field_name', array(
'type' => 'text',
'required' => true,
'class' => array('my-field-class form-row-wide'),
'label' => __('Fill in this field'),
'placeholder' => __('Enter something'),
), $checkout->get_value('my_field_name'));
?>
</div>
}
时,它完全正常(但没有预填充字段。
此外,当我使用, $checkout->get_value('my_field_name')
时,它会显示我:var_dump($checkout);
。
最后,当我想显示string(0) ""
时,它的效果非常好。所以我认为我不会使用变量。
所以我的问题是:
由于