LemonStand Documentation

shop:onGetOptionFieldOptions event

The shop:onGetOptionFieldOptions event allows to populate drop-down, radio- or checkbox list fields, which you added with the shop:onExtendOptionForm event, with custom options. Usually you do not need to use this event for fields which represent data relations. But if you want a standard field (corresponding an integer-typed database column, for example), to be rendered as a drop-down list, you should handle this event in your module.

The event handler should accept 2 parameters - the field name and a current field value. If the current field value is -1, the handler should return an array containing a list of options. If the current field value is not -1, the handler should return a string, corresponding the value.

Event handler example:

public function subscribeEvents()
{
	Backend::$events->addEvent('shop:onExtendOptionModel', $this, 'extend_option_model');
	Backend::$events->addEvent('shop:onExtendOptionForm', $this, 'extend_option_form');
	Backend::$events->addEvent('shop:onGetOptionFieldOptions', $this, 'get_options_field_options');
}

public function extend_option_model($option)
{
	$option->define_column('x_color', 'Color');
}
		 
public function extend_option_form($product, $context)
{
	$option->add_form_field('x_color')->renderAs(frm_dropdown);
}

public function get_options_field_options($field_name, $current_key_value)
{
	if ($field_name == 'x_color')
	{
		$options = array(
		0 => 'Red',
		1 => 'Green',
		2 => 'Blue'
		);
		 
		if ($current_key_value == -1)
			return $options;
			 
		if (array_key_exists($current_key_value, $options))
			return $options[$current_key_value];
	}
}

Next: shop:onExtendCustomGroupModel event
Previous: shop:onExtendOptionForm event
Return to Handling LemonStand events