Я использую 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
, потому что это неправильное место.