Tovább a tartalomhoz

Termék neve és ára külön oszlopban az exportban

Kódrészlet, amellyel a választós termékmezők, opciók, szállítási és választógombos mezők exportjában külön oszlopba kerül a név, az érték és az ár.

Az egyetlen termékmezőknél az exportban alapból külön oszlop van a termék nevének és árának. A választási lehetőségeket kínáló termékmezőknél (legördülő vagy választógombos mezőtípus) viszont ezek az oszlopok nem érhetők el.

Az alábbi kód az oldaladra téve új lehetőségeket ad az Importálás/exportálás oldal Bejegyzések exportálása részéhez: Termék (Név), Termék (Érték) és Termék (Ár). Az új oszlopok minden választós termékmezőnél elérhetők, az Opció és a Szállítás mezőknél is. A Választógomb mezőknél a név- és értékoszlopot adja hozzá.

Ha az exportban a fejléceket testre szeretnéd szabni, a kód a mezőknél beállított admin-címkét is figyelembe veszi.

A kódot a téma functions.php fájljába, egyedi funkciók bővítményébe vagy kódrészlet-kezelőbe teheted.

// Névre, értékre és árra bontott export oszlopok az egyválasztásos mezőkhöz
add_filter( 'gform_export_fields', function( $form ) {
foreach ( $form['fields'] as $key => $field ) {
$is_product_like_field = ( $field->type == 'product' || $field->type == 'option' || $field->type == 'shipping' ) ? true : false;
if ( ( $is_product_like_field || $field->type == 'radio' ) && is_array( $field->choices ) ) {
// unset( $form['fields'][ $key ] ); // vedd ki a kommentből, ha az eredeti mezőt el akarod távolítani az exportlistából
// a kiegészítő oszlopok hozzáadása
array_push( $form['fields'], array( 'id' => $field->id.'_text', 'label' => $field->label.' (Név)' ) );
array_push( $form['fields'], array( 'id' => $field->id.'_value', 'label' => $field->label.' (Érték)' ) );
if ( $is_product_like_field ) {
array_push( $form['fields'], array( 'id' => $field->id.'_price', 'label' => $field->label.' (Ár)' ) );
}
// a hozzáadott oszlopok fejlécei
add_filter( "gform_entries_field_header_pre_export_{$form['id']}_{$field->id}_text", function( $header, $form, $export_field ) {
return $header.' (Név)';
}, 10, 3 );
add_filter( "gform_entries_field_header_pre_export_{$form['id']}_{$field->id}_value", function( $header, $form, $export_field ) {
return $header.' (Érték)';
}, 10, 3 );
if ( $is_product_like_field ) {
add_filter( "gform_entries_field_header_pre_export_{$form['id']}_{$field->id}_price", function( $header, $form, $export_field ) {
return $header.' (Ár)';
}, 10, 3 );
}
// a hozzáadott oszlopok értékei
add_filter( 'gform_export_field_value', function( $value, $form_id, $field_id, $entry ) use ( $field ) {
$product_data = explode( '|', rgar( $entry, $field->id ) );
$product_choice = array_filter( $field->choices, function( $choice ) use ( $product_data ) {
return ( $choice['value'] == $product_data[0] );
} );
$product_choice = array_values( $product_choice );
switch ( $field_id ) {
case $field->id.'_text':
return $product_choice[0]['text'];
break;
case $field->id.'_value':
return $product_data[0];
break;
case $field->id.'_price':
return $product_data[1];
break;
default:
return $value;
break;
}
}, 10, 4 );
}
}
return $form;
} );
  • A gform_export_fields szűrő a kiválasztható exportmezők listáját bővíti az új _text, _value és _price végű azonosítókkal.
  • A gform_entries_field_header_pre_export szűrők az új oszlopok fejlécét állítják be.
  • A gform_export_field_value szűrő az új oszlopok tartalmát számolja ki: a mező mentett értékét a | jel mentén szétválasztja, a név a megfelelő választási lehetőség szövege, az érték az első rész, az ár a második.
  • A kommentbe tett unset sor kivételével az eredeti mező is megmarad az exportlistában.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások