В Woocommerce я добавил несколько настраиваемых полей на страницах продуктов администратора под вкладкой общих настроек, и это работает.Однако я добавил сторонний плагин, который удаляет все, что было сохранено в этих полях каждый раз, когда обрабатывается заказ.
Поля по умолчанию на вкладке "Общие" и даже поля сторонних производителей не удаляются.Мне интересно, есть ли лучший способ создать поля и хранить эти данные, чем то, как я это делаю.
Вот мой код:
add_action( 'woocommerce_product_options_pricing', 'mpq_add_location_textbox_to_products' );
function mpq_add_location_textbox_to_products() {
if ( (has_term( 'workshops', 'product_cat' ) )){
woocommerce_wp_textarea_input( array(
'id' => 'mpq_location',
'class' => '',
'label' => 'Location:',
'placeholder' => 'Enter Location'
)
);
}
}
add_action( 'save_post', 'mpq_save_location_textbox_to_post_meta' );
function mpq_save_location_textbox_to_post_meta( $product_id ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
if ( isset( $_POST['mpq_location'] ) ) {
update_post_meta( $product_id, 'mpq_location', $_POST['mpq_location'] );
} else delete_post_meta( $product_id, 'mpq_location' );
}