Gravity Forms – vlastní pole a napojení na GP WebPay
Pro web newyou.de jsem vytvořil WordPress plugin, který do záznamů v Gravity Forms přidá možnost kolonku status a možnost status vybrat. Pokud administrátor vybere “Waiting for payment”, uživatele přijde email s odkazem na platební bránu GPWebPay, po dokončení platby je přesměrován zpět na web, status položky se aktualizuje a zapíše se log.
Gravity Forms mají poměrně přehledno dokumentaci, ale několik věcí nebylo přímočaré najít, např. přidání sloupce “Status” do seznamu položek:
[php]
/**
* Add column Status to entries list
* @param $entry_meta
* @param $form_id
* @return mixed
*/
add_filter(‘gform_entry_meta’, ‘custom_entry_meta’, 10, 2);
function custom_entry_meta($entry_meta, $form_id)
{
if ($form_id == 10) {
$entry_meta[‘ny_item_status’] = array(
‘label’ => ‘Status’,
‘is_numeric’ => true,
‘is_default_column’ => true
);
}
return $entry_meta;
}
[/php]
a přidání metaboxu do detailu položky v Gravity Forms
[php]
/**
* Add the meta box to the entry detail page.
*
* @param array $meta_boxes The properties for the meta boxes.
* @param array $entry The entry currently being viewed/edited.
* @param array $form The form object used to process the current entry.
*
* @return array
*/
add_filter(‘gform_entry_detail_meta_boxes’, ‘register_meta_box’, 10, 3);
public function register_meta_box($meta_boxes, $entry, $form)
{
$meta_boxes[$this->slug] = array(
‘title’ => ‘Status’,
‘callback’ => array($this, ‘add_details_meta_box’),
‘context’ => ‘side’,
);
return $meta_boxes;
}
[/php]
Výsledkem je pohodlná a přehledná implementace GPWebPay na položky v Gravity Forms, vše samozřejmě s použitím upgrade-safe actions a filters WordPressu a Gravity Forms.
Václav Greif se programování pro Wordpress věnuje více než 16 let. Za tu dobu nasbíral mnoho zkušeností s tvorbou pluginů pro Wordpress, úpravou šablon a programováním komplexních funkcionalit. Věnuje se programování pro Wordpress a školení programátorů.
Tento příspěvek by mi velmi pomohl při programování vlastního metaboxu. Bylo by možné opravit snímky obrazovky v příspěvku? Moc děkuji.