不能将变量$ checkout与WooCommerce-Multistep-Checkout一起使用

时间:2017-07-10 10:07:44

标签: php wordpress woocommerce checkout form-fields

我正在尝试在我的结帐页面中创建一个新步骤,我目前正在使用插件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) ""时,它的效果非常好。所以我认为我不会使用变量。

所以我的问题是:

  1. 你知道这个空变量背后的所有谜团吗?
  2. 我误用了什么吗?
  3. 为什么官方文档中模板末尾有最后的花括号?
  4. 由于

0 个答案:

没有答案