Hi! I just started working with CF7. So the setup / interface is a bit getting used to compared to CF6.
My question is: How do I create a custom data value in the data array so I can use this in the e-mail that is send. I would like tot use a PHP action to create this value,
The form type is set to 'advanced'. That way I can add an PHP action to the page.
When I add code:
$this->data("testing","test",true);
I would expect to be able to use this in the e-mail that is send:
{data:testing}
Should this work or do I need a different way to do this in CF7?
Kind regards,
Jip
Ah, I think I know what I missed. I need to put the action on the end_page page. I had it on the start_page page.
For anyone who might need this:
To create a custom variable / value in CF7 you can use the PHP action (only in 'advanced' form type - on the end_page page) to create:
1) A value in the data array:
$this->data("testing","test",true);
This will put the value in the data array and you can then use {data:testing} in an email to retrieve the value. In this example it would bet 'test'. But you can of course create any value you need in the PHP action.
2) A PHP variable. This returned variable will have the name of the PHP action (for example 'php_1')
$myvalue = "test"
return $myvalue;
So this will be stored as a variable you can then use like this:
{var:php_1}
Kind regards,
Jip
Hi - interesting.
Say I have a two field, repeater area that produces an array. The repeater area is called Contact.
If I put {data:Contact} in the email form after entering two rows, I get
{"1":{"name":"Fred","choices":"5"},"2":{"name":"Tony","choices":"7"}}
How would I be able to format this output better so it could be inserted into the email in, say a tabular form?
So the output would be a bit like:
Name: Fred Choices: 5
Name: Tony Choices: 7
Using {data.pr:Contact} is better as all the rows are grouped together in a more readable fashion but it's still a raw output from the array.
I guess it would be using the php action and then the resulting formatted output would be inserted into the email template using the {var:php_action_name}?
mark
I believe you're dealing with a json string here. Not an array. But I am not sue.
You could maybe create an php array from the json string ($myJSON = json_encode($myObj);) and the loop through the array to create the output you want.
But I also think there is (or was) an option in CF to do this for you and output it as a comma seperated list.
Hope this helps. I have not tested this.
Hi - I was looking maybe to use
extract();
to split the array $this->data("Contact") and format keys and values. Can't get it to work. But to be fair CF7 is new and there's loads of things being added to it all the time.