WooCommerce - Подписки Добавить настраиваемое поле в Редактировать подписку

Я использую Wordpress WooCommerce и WooCommerce Subscriptions, и он работает в соответствии с моими ожиданиями.

Однако у меня было требование добавить настраиваемое поле на страницу Изменить подписку, поэтому я воспользовался приведенным ниже крючком и кодом, чтобы добавить новое поле на странице Изменить подписку.

add_action('woocommerce_admin_order_data_after_order_details', 'showWCSubscriptionCustomFields');




function showWCSubscriptionCustomFields($subscription) {

    $currentPage = get_current_screen();

    // If page is "Edit Subscription" page, then only show 
    if ($currentPage->action == 'add')
        return;

    // Getting all the users 
    $mindeskUsers = getAllUsers();

?>
    <br class="clear" />
    <p class="form-field form-field-wide">
        <label for="mindesk_wc_subscriptions_var_client_user_id">Mindesk VAR Client User:</label>
        <?php

        $selectedUser = get_post_meta($subscription->get_id(), 'mindesk_wc_subscriptions_var_client_user_id', true);

        echo getUsersListSelect('mindesk_wc_subscriptions_var_client_user_id', $selectedUser, $mindeskUsers, 'mindesk_select2');
        ?>
    </p>
<?php

}

У меня это работает нормально ... Здесь я проверяю, не находится ли страница в режиме добавить, и мое настраиваемое поле будет отображаться только тогда, когда страница находится в режиме редактирования. Итак, на странице Изменить подписку отображается мое настраиваемое поле, и я могу сохранить данные, используя крючок ниже.

add_action('woocommerce_process_shop_order_meta', 'saveWCSubscriptionCustomFields');

function saveWCSubscriptionCustomFields($subscription_id) {

    // wc_clean() and wc_sanitize_textarea() are WooCommerce sanitization functions 
    update_post_meta($subscription_id, 'mindesk_wc_subscriptions_var_client_user_id', wc_clean($_POST['mindesk_wc_subscriptions_var_client_user_id']));
}

Теперь мой запрос: когда я перехожу на страницу Изменить порядок, я также вижу это новое поле. Я не хочу показывать это новое настраиваемое поле на этой странице.

Я пытался найти различные крючки и пробовал несколько, но ни один из них не работал у меня должным образом.

Может ли кто-нибудь посоветовать мне показать свое новое настраиваемое поле только на странице Изменить подписку… и как скрыть это новое поле для страницы Изменить заказ?

Любая помощь или руководство будут высоко оценены.

Спасибо


person Mittul At TechnoBrave    schedule 05.04.2021    source источник
comment
Вы можете скрыть с помощью CSS.   -  person Bhautik    schedule 05.04.2021
comment
Спасибо за ответ @Bhautik .. что мне делать, чтобы проверить css?   -  person Mittul At TechnoBrave    schedule 05.04.2021
comment
Это Mindesk VAR Client User: поле вы хотите скрыть?   -  person Bhautik    schedule 05.04.2021
comment
Да, точно .. ..   -  person Mittul At TechnoBrave    schedule 05.04.2021


Ответы (1)


Добавьте два класса hide-if-admin и mindesk-var в свой тег p. проверьте приведенный ниже код.

add_action('woocommerce_admin_order_data_after_order_details', 'showWCSubscriptionCustomFields');
function showWCSubscriptionCustomFields($subscription) {

    $currentPage = get_current_screen();

    // If page is "Edit Subscription" page, then only show 
    if ($currentPage->action == 'add')
        return;

    // Getting all the users 
    $mindeskUsers = getAllUsers();

?>
    <br class="clear" />
    <p class="form-field form-field-wide mindesk-var hide-if-admin">
        <label for="mindesk_wc_subscriptions_var_client_user_id">Mindesk VAR Client User:</label>
        <?php

        $selectedUser = get_post_meta($subscription->get_id(), 'mindesk_wc_subscriptions_var_client_user_id', true);

        echo getUsersListSelect('mindesk_wc_subscriptions_var_client_user_id', $selectedUser, $mindeskUsers, 'mindesk_select2');
        ?>
    </p>
<?php

}

function hide_mindesk_var_client_user(){
    ?>
    <style type="text/css">
        .post-type-shop_order .mindesk-var.hide-if-admin{display: none;}
    </style>
    <?php
}

add_action( 'admin_footer', 'hide_mindesk_var_client_user', 10, 1 );
person Bhautik    schedule 05.04.2021
comment
ОК .. Дай мне попробовать ... - person Mittul At TechnoBrave; 05.04.2021
comment
нет .. он не работает .. он все еще отображается на странице порядка редактирования - person Mittul At TechnoBrave; 05.04.2021
comment
Можете ли вы поделиться скриншотами страницы заказа на редактирование и кода? - person Bhautik; 05.04.2021
comment
конечно позвольте мне поделиться - person Mittul At TechnoBrave; 05.04.2021
comment
Фактически его удаление из обоих .. Редактировать страницу подписки, а также страницу редактирования заказа .. - person Mittul At TechnoBrave; 05.04.2021
comment
Я хочу отображать на странице Изменить подписку .. и скрывать только на странице Изменить заказы - person Mittul At TechnoBrave; 05.04.2021
comment
Вы можете поделиться скриншотами страницы редактирования подписки с помощью элемента проверки? - person Bhautik; 05.04.2021
comment
конечно ... позвольте мне поделиться - person Mittul At TechnoBrave; 05.04.2021
comment
Похоже, это работает для меня, Бхаутик .. Большое вам спасибо. - person Mittul At TechnoBrave; 05.04.2021
comment
Добро пожаловать ... Рад помочь. - person Bhautik; 05.04.2021
comment
Да .. Спасибо .. У меня есть еще один вопрос, который я собираюсь задать в ближайшее время на этом форуме .. Может быть, вы мне поможете .. Я поделюсь ссылкой здесь .. Спасибо - person Mittul At TechnoBrave; 05.04.2021
comment
Конечно, я попробую ... - person Bhautik; 05.04.2021
comment
Да, спасибо .. Не могли бы вы проверить эту ветку и посоветовать мне, что мне делать здесь stackoverflow.com/questions/66950465/ - person Mittul At TechnoBrave; 05.04.2021