esc_attr__( 'Group', 'give' ), 'add_button' => esc_html__( 'Add Row', 'give' ), 'group_numbering' => 0, 'close_tabs' => 0, ]; $this->options = isset( $array['options'] ) ? array_merge( $defaultOptions, $array['options'] ) : $defaultOptions; $this->fields = isset( $array['fields'] ) ? $array['fields'] : []; } /** * @inheritDoc */ public function toArray() { return array_merge( parent::toArray(), [ 'options' => $this->options, 'fields' => $this->fields, ] ); } /** * Get sub fields. * * @since 2.7.0 * @param string $fieldId * @return array */ public function getFieldArguments( $fieldId ) { $field = current( array_filter( $this->fields, static function( $field ) use ( $fieldId ) { return $fieldId === $field['id']; } ) ); // Validate field. if ( ! $field ) { throw new InvalidArgumentException( sprintf( __( 'Field with %1$s Id does not exist in group.', 'give' ), $fieldId ) ); } return $field; } }