WooCommerce / W C Поставщики: отображение названия продукта и мета после заголовка в формах редактирования продукта - PullRequest
0 голосов
/ 07 мая 2020

Я использую W C Vendors Pro, который позволяет вам добавлять / редактировать продукты WooCommerce из внешнего интерфейса. Теперь я хочу отображать название продукта и метаполе (SKU) после заголовка формы редактирования продукта.

Я добавил настраиваемую функцию, которая правильно отображает фиктивные данные:

add_action( 'wcvendors_before_product_form', 'vendor_dashboard_product_title_after_headline_product_form', 0 );
function vendor_dashboard_product_title_after_headline_product_form(){

    echo '<h3>Name</h3>';
    echo '<p>SKU</p>';

}

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

Я пытался использовать следующее:

$product = wc_get_product( $product_id );  
$product->get_name();

Но показывает ошибку. Я полагаю, что $product не работает, потому что в форме нет $product_id (это обычная страница).

Итак, я заглянул в файл шаблона, и он показывает следующий код в начале :

$title      = ( is_numeric( $object_id ) ) ? __( 'Save Changes', 'wcvendors-pro' ) : __( 'Add Product', 'wcvendors-pro' );
$page_title = ( is_numeric( $object_id ) ) ? __( 'Edit Product', 'wcvendors-pro' ) : __( 'Add Product', 'wcvendors-pro' );
$product    = ( is_numeric( $object_id ) ) ? wc_get_product( $object_id ) : null;
$post       = ( is_numeric( $object_id ) ) ? get_post( $object_id ) : null;

// Get basic information for the product
$product_title             = ( isset( $product ) && null !== $product ) ? $product->get_title() : '';
$product_description       = ( isset( $product ) && null !== $product ) ? $post->post_content : '';
$product_short_description = ( isset( $product ) && null !== $product ) ? $post->post_excerpt : '';
$post_status               = ( isset( $product ) && null !== $product ) ? $post->post_status : '';

Я пробовал использовать $object_id. Но он пуст. Даже если я добавлю его в свою функцию вот так:

function vendor_dashboard_product_title_after_headline_product_form($object_id){

Может быть, это неправильный путь?!

Кто-нибудь знает, как мне получить идентификатор продукта из продукта, который я редактирую? Если у меня есть идентификатор, я могу заставить все остальное работать.

EDIT:

Если я использую другой крючок, я могу использовать $object_id. Это работает:

add_action( 'wcv_before_general_tab', 'vendor_dashboard_product_title_after_headline_product_form', 0 );
function vendor_dashboard_product_title_after_headline_product_form($object_id){

Моя проблема в том, что я не хочу использовать ловушку wcv_before_general_tab, потому что это неправильное место.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...