<?php namespace calderawp\CalderaFormsQuery\Tests\Traits; /** * Trait CreatesEntryWithEmailField * * Helper functions for testing entry by email */ trait CanCreateEntryWithEmailField { use \Caldera_Forms_Has_Mock_Form; /** * Create an entry associated with an email * * @param string $email * * @return int */ protected function createEntryWithEmail( $email = 'hiroy@hiroy.club' ) { $fieldData = []; $emailFieldConfig = $this->getEmailField(); foreach( $this->mock_form[ 'fields' ] as $fieldId => $fieldConfig ){ if ( $fieldId === $emailFieldConfig[ 'ID'] ) { $fieldData[ $fieldId ] = $email; } else { $fieldData[ $fieldId ] = rand() . $fieldId; } } return \Caldera_Forms_Save_Final::create_entry( $this->mock_form, $fieldData ); } /** * Get the email field's config array * * @return array|bool */ protected function getEmailField() { return \Caldera_Forms_Field_Util::get_field_by_slug( 'email', $this->mock_form ); } /** * Get slug of email field * * @return string */ protected function getEmailFieldSlug() { return $this->getEmailField()[ 'slug' ]; } }