Wordpress 在我的插件中,当按下按钮时是什么导致了“白色死亡屏幕”?

Wordpress 在我的插件中,当按下按钮时是什么导致了“白色死亡屏幕”?,wordpress,woocommerce,storefront,Wordpress,Woocommerce,Storefront,我最近做了自己的代码混合匹配插件来处理WooCommerce网站上的表单,使其更适合购买sutff的公司。它在本地运行得非常好,但是当我把它放在我的live网站上时,当我使用链接/按钮将你引导到网站上的其他页面时,我会看到白色的死亡屏幕——我不知道为什么!有什么想法吗 我没有真正尝试过任何东西,因为我对woocommerce、wordpress和PHP的知识都是。。。最多是初学者 插件: /* * Plugin Name: Posifon Form Management Plugin */

我最近做了自己的代码混合匹配插件来处理WooCommerce网站上的表单,使其更适合购买sutff的公司。它在本地运行得非常好,但是当我把它放在我的live网站上时,当我使用链接/按钮将你引导到网站上的其他页面时,我会看到白色的死亡屏幕——我不知道为什么!有什么想法吗

我没有真正尝试过任何东西,因为我对woocommerce、wordpress和PHP的知识都是。。。最多是初学者

插件:

/*
 * Plugin Name: Posifon Form Management Plugin
 */
defined('ABSPATH') or die('No script kiddies please!');

/* === GENERAL === */
/* Add new fields */
add_filter( 'woocommerce_checkout_fields' , 'plugin_add_custom_billing_fields' );
function plugin_add_custom_billing_fields($fields) {
    $fields['billing']['billing_org_number'] = array(
        'label'     => __('Organisationsnummer', 'woocommerce'),
        'placeholder'   => __('T.ex. 1234-5678', 'woocommerce'),
        'required'  => true,
        'class'     => array('form-row-wide'),
        'clear'     => true,
    );

    $fields['billing']['billing_org_reference'] = array(
        'label'     => __('Kostnadsställe/referens', 'woocommerce'),
        'placeholder'   => __('T.ex. Per Olofsson', 'woocommerce'),
        'required'  => true,
        'class'     => array('form-row-wide'),
        'clear'     => true,
    );

    return $fields;
}

/* Save fields to database */
function reigel_woocommerce_checkout_update_user_meta( $customer_id, $posted) {
    if (isset($posted['billing_org_number'])) {
        $dob = sanitize_text_field( $posted['billing_org_number'] );
        update_user_meta( $customer_id, 'billing_org_number', $dob);
    }

    if (isset($posted['billing_org_reference'])) {
        $dob = sanitize_text_field( $posted['billing_org_reference'] );
        update_user_meta( $customer_id, 'billing_org_reference', $dob);
    }
}
add_action( 'woocommerce_update_user_meta', 'reigel_woocommerce_checkout_update_user_meta', 10, 2 );

/* === MY ACCOUNT / EDIT ADRESSES / BILLING === */
/* Override default fields */
add_filter( 'woocommerce_billing_fields', 'plugin_override_account_billing', 20, 1 );
function plugin_override_account_billing( $fields ) {
    // Only on my account 'edit-address'
    if( is_wc_endpoint_url( 'edit-address' ) ){
        // Company
        $fields['billing_company']['required'] = true;
        $fields['billing_company']['label'] = 'Organisation';
        // Organisation Number
        $fields['billing_org_number']['label'] = 'Organisationsnummer';
        $fields['billing_org_number']['required'] = true;
        // Organisation Reference
        $fields['billing_org_reference']['label'] = 'Kostnadsställe/referens';
        $fields['billing_org_reference']['required'] = true;
        // Put City and Postcode on same row
        $fields['billing_postcode']['class'][0] = 'form-row-first';
        $fields['billing_city']['class'][0] = 'form-row-last';
    }
    return $fields;
}

/* Change order of BILLING */
add_filter( 'woocommerce_billing_fields', 'plugin_change_order_account_billing', 20, 1 );
function plugin_change_order_account_billing( $fields ) {
    // Only on my account 'edit-address'
    if( is_wc_endpoint_url( 'edit-address' ) ){
        $fields['billing_company']['priority'] = 10;
        $fields['billing_org_number']['priority'] = 20;
        $fields['billing_org_reference']['priority'] = 30;
        $fields['billing_address_1']['priority'] = 40;
        $fields['billing_address_2']['priority'] = 50;
        $fields['billing_postcode']['priority'] = 60;
        $fields['billing_city']['priority'] = 70;
        $fields['billing_country']['priority'] = 80;
        $fields['billing_first_name']['priority'] = 90;
        $fields['billing_last_name']['priority'] = 100;
        $fields['billing_phone']['priority'] = 110;
        $fields['billing_email']['priority'] = 120;
    }
    return $fields;
}

/* === MY ACCOUNT / EDIT ADRESSES / SHIPPING === */
/* Override default fields */
add_filter( 'woocommerce_shipping_fields', 'plugin_override_account_shipping', 20, 1 );
function plugin_override_account_shipping( $fields ) {
    // Only on my account 'edit-address'
    if( is_wc_endpoint_url( 'edit-address' ) ){
        // Company
        $fields['shipping_company']['required'] = true;
        $fields['shipping_company']['label'] = 'Organisation';
        // Put City and Postcode on same row
        $fields['shipping_postcode']['class'][0] = 'form-row-first';
        $fields['shipping_city']['class'][0] = 'form-row-last';

        unset($fields['shipping_first_name']);
        unset($fields['shipping_last_name']);
    }
    return $fields;
}

/* Change order of BILLING */
add_filter( 'woocommerce_shipping_fields', 'plugin_change_order_account_shipping', 20, 1 );
function plugin_change_order_account_shipping( $fields ) {
    // Only on my account 'edit-address'
    if( is_wc_endpoint_url( 'edit-address' ) ){
        $fields['shipping_company']['priority'] = 10;
        $fields['shipping_address_1']['priority'] = 20;
        $fields['shipping_address_2']['priority'] = 30;
        $fields['shipping_postcode']['priority'] = 40;
        $fields['shipping_city']['priority'] = 50;
        $fields['shipping_country']['priority'] = 70;
    }
    return $fields;
}

/* === CHECKOUT / BILLING === */
/* Override default fields */
add_filter('woocommerce_checkout_fields', 'plugin_override_default_billing_fields');
function plugin_override_default_billing_fields($fields) {
    $fields['billing']['billing_company']['required'] = true;
    $fields['billing']['billing_postcode']['class'][0] = 'form-row-first';
    $fields['billing']['billing_city']['class'][0] = 'form-row-last';

    return $fields;
}

/* Change order of billing CHECKOUT */
add_filter("woocommerce_checkout_fields", "plugin_override_order_checkout_fields");
function plugin_override_order_checkout_fields($fields) {
    $order = array(
        'billing_first_name',
        'billing_last_name',
        'billing_company',
        'billing_email',
        'billing_phone',
        'billing_country',
        'billing_address_1',
        'billing_address_2',
        'billing_city',
        'billing_postcode',
        'billing_org_number',
        'billing_org_reference'
    );

    foreach($order as $field) {
        $ordered_fields[$field] = $fields['billing'][$field];
    };

    $fields['billing'] = $ordered_fields;

    $fields['billing']['billing_company']['priority'] = 10;
    $fields['billing']['billing_org_number']['priority'] = 20;
    $fields['billing']['billing_org_reference']['priority'] = 30;
    $fields['billing']['billing_address_1']['priority'] = 40;
    $fields['billing']['billing_address_2']['priority'] = 50;
    $fields['billing']['billing_postcode']['priority'] = 60;
    $fields['billing']['billing_city']['priority'] = 70;
    $fields['billing']['billing_country']['priority'] = 80;
    $fields['billing']['billing_first_name']['priority'] = 100;
    $fields['billing']['billing_last_name']['priority'] = 110;
    $fields['billing']['billing_email']['priority'] = 130;
    $fields['billing']['billing_phone']['priority'] = 140;


    return $fields;
}

/* === CHECKOUT / SHIPPING === */
/* Override default fields */
add_filter('woocommerce_checkout_fields', 'plugin_override_default_shipping_fields');
function plugin_override_default_shipping_fields($fields) {
    // Company
    $fields['shipping']['shipping_company']['required'] = true;
    $fields['shipping']['shipping_company']['label'] = 'Organisation';
    // Put City and Postcode on same row
    $fields['shipping']['shipping_postcode']['class'][0] = 'form-row-first';
    $fields['shipping']['shipping_city']['class'][0] = 'form-row-last';
    // Remove first- and last name
    unset($fields['shipping']['shipping_first_name']);
    unset($fields['shipping']['shipping_last_name']);

    return $fields;
}

/* Change order of billing CHECKOUT */
add_filter("woocommerce_checkout_fields", "plugin_override_order_checkout_shipping_fields");
function plugin_override_order_checkout_shipping_fields($fields) {
    $order = array(
        'shipping_company',
        'shipping_country',
        'shipping_address_1',
        'shipping_address_2',
        'shipping_city',
        'shipping_postcode',
    );

    foreach($order as $field) {
        $ordered_fields[$field] = $fields['shipping'][$field];
    };

    $fields['shipping'] = $ordered_fields;

    $fields['shipping']['shipping_company']['priority'] = 10;
    $fields['shipping']['shipping_address_1']['priority'] = 40;
    $fields['shipping']['shipping_address_2']['priority'] = 50;
    $fields['shipping']['shipping_postcode']['priority'] = 60;
    $fields['shipping']['shipping_city']['priority'] = 70;
    $fields['shipping']['shipping_country']['priority'] = 80;


    return $fields;
}

/* === MY ACCOUNT === */
/* Override default fields */
add_filter('woocommerce_billing_fields', 'plugin_override_default_account_fields');
function plugin_override_default_account_fields($fields) {
    if( is_user_logged_in() && is_account_page() ) {
        unset($fields['account_first_name']);
        unset($fields['account_last_name']);
    }
    return $fields;
}

/* === DISPLAYING === */
/* Display field value on the order edit page ADMIN */
add_action( 'woocommerce_admin_order_data_after_shipping_address', 'plugin_checkout_field_display_admin_order_meta', 10, 1 );
function plugin_checkout_field_display_admin_order_meta($order) {
    echo '<p><strong>'.__('Organisationsnummer').':</strong> ' . get_post_meta( $order->get_id(), '_billing_org_number', true ) . '</p>';
    echo '<p><strong>'.__('Kostnadsställe/referens').':</strong> ' . get_post_meta( $order->get_id(), '_billing_org_reference', true ) . '</p>';
}
如果需要更多的代码,我将编辑此文件并将其提供给您,我还对my-address.php文件做了一些更改

我想要的结果是:不要有白色的死亡屏幕


编辑:我尝试为PHP添加更多内存,但没有成功。

在站点根目录下的wp_config.PHP中,您可能有以下行:

define('WP_DEBUG', false);
将此更改为:

define('WP_DEBUG', true);

然后再次检查死亡的白色屏幕-它应该显示文件中的哪一个文件和哪一行,错误正在发生:-

在站点根目录下的wp_config.php中,您可能有以下行:

define('WP_DEBUG', false);
将此更改为:

define('WP_DEBUG', true);

然后再次检查死亡的白色屏幕-它应该显示文件中的哪个文件和哪一行,错误正在发生:-

感谢rblarsens的回答,我发现了错误:

警告:无法修改标题信息-标题已由


这仅仅是因为在第一次回答之前有一个空格多亏了rblarsens的回答,我发现了错误:

警告:无法修改标题信息-标题已由


这仅仅是由于第一次出现之前的一个空格引起的。谢谢你的输入!我现在已经更改了它,但它似乎不起作用,或者,至少,我在任何地方都找不到任何表示文本/错误消息的内容。我做错什么了吗?也许我在错误的地方寻找WP_调试的输入?哦,没关系,我做错了什么,哈哈。。。我是这个项目的新手,我刚刚更改了错误的wp_config.php。现在我得到了错误信息!非常感谢。当你开发Wordpress网站时,了解这一点是件很好的事情-谢谢你的意见!我现在已经更改了它,但它似乎不起作用,或者,至少,我在任何地方都找不到任何表示文本/错误消息的内容。我做错什么了吗?也许我在错误的地方寻找WP_调试的输入?哦,没关系,我做错了什么,哈哈。。。我是这个项目的新手,我刚刚更改了错误的wp_config.php。现在我得到了错误信息!非常感谢。当你开发Wordpress网站时,了解这一点是件很好的事情-