Php Wordpress商业更新元数据

Php Wordpress商业更新元数据,php,wordpress,Php,Wordpress,好的,我有一个附属系统。我正在嵌入一个cookie。我已经让代码工作,将一个新字段添加到签出页面,然后让它强制用户在新字段中输入cookie的#。这是工作代码 add_action('woocommerce_after_order_notes', 'affid_field'); function affid_field($checkout) { if(isset($_COOKIE['ap_ref_tracking'])) { echo '<div style

好的,我有一个附属系统。我正在
嵌入一个cookie
。我已经让代码工作,将一个新字段添加到
签出页面
,然后让它强制用户在新字段中输入
cookie的#
。这是工作代码

   add_action('woocommerce_after_order_notes', 'affid_field');

function affid_field($checkout)
{
    if(isset($_COOKIE['ap_ref_tracking'])) {
        echo '<div style=" width: 335px;clear: both;
    margin-bottom: 75px;" id="affid_field">';
        woocommerce_form_field('affid_field', array(
            'type' => 'text',
            'class' => array(
                'my-field-class form-row-wide'
            ) ,
            'label' => __('Retype Number Shown Below') ,
            'placeholder' => $_COOKIE['ap_ref_tracking'] ,
            'required' => true,
        ) , $checkout->get_value('affid_field'));
        echo '</div>';
    }
}


add_action('woocommerce_checkout_process', 'customise_checkout_field_process');

function customise_checkout_field_process()
{
    if(isset($_COOKIE['ap_ref_tracking'])) {
    // if the field is set, if not then show an error message.
        $field = $_POST['affid_field'];
        $aff = $_COOKIE['ap_ref_tracking'];
        if (!$field or $field != $aff) 
        wc_add_notice(__('Please re-enter '.$aff.' as shown on the Shipping Tab.') , 'error');
    }
}

add_action('woocommerce_checkout_update_order_meta', 'customise_checkout_field_update_order_meta');

function customise_checkout_field_update_order_meta($order_id)
{
    $affid_field = $_POST['affid_field'];
    if ( ! empty( $affid_field ) ) {
        update_post_meta( $order_id, '_affid_field', sanitize_text_field( $affid_field ) );
    }
}
这根本不起作用,它使网站崩溃了。不知道我遗漏了什么,这应该有用吧?如果有人发现我的错误并帮我一把,我将不胜感激

您正在使用“)”而不是“}”来关闭if语句。。。 试试这个:-

 add_action('woocommerce_checkout_update_order_meta', 'customise_checkout_field_update_order_meta');

function customise_checkout_field_update_order_meta($order_id)
{
    if(isset($_COOKIE['ap_ref_tracking'])) {
            $aff = $_COOKIE['ap_ref_tracking'];
            update_post_meta( $order_id, '_affid_field', sanitize_text_field( $aff ) );
    }
}

哈哈,谢谢有时候你需要新的眼睛来发现你的错误。
 add_action('woocommerce_checkout_update_order_meta', 'customise_checkout_field_update_order_meta');

function customise_checkout_field_update_order_meta($order_id)
{
    if(isset($_COOKIE['ap_ref_tracking'])) {
            $aff = $_COOKIE['ap_ref_tracking'];
            update_post_meta( $order_id, '_affid_field', sanitize_text_field( $aff ) );
    }
}