{"id":20722,"date":"2018-12-24T14:51:12","date_gmt":"2018-12-24T14:51:12","guid":{"rendered":"https:\/\/elementor.com\/blog\/?p=20722"},"modified":"2018-12-24T14:51:12","modified_gmt":"2018-12-24T14:51:12","slug":"greeting-card-generator-elementor","status":"publish","type":"post","link":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/","title":{"rendered":"How Our Team Created a Holiday Greeting Card Generator From Scratch"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"20722\" class=\"elementor elementor-20722\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4eb6ea9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4eb6ea9\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-08b8910\" data-id=\"08b8910\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2d0ff6d elementor-widget elementor-widget-text-editor\" data-id=\"2d0ff6d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>It&#8217;s Christmas time, which means it is time for our Education team to come up with something special for you! We think we\u2019ve come up with the perfect gift \u2013 a fully automated greeting card generator done entirely with Elementor.<\/p><p>Want to send greetings to your parents, family, or your best friend? All you have to do is fill in the details: your friend&#8217;s name \u2013 David for example, add a greeting with all your best wishes for the new year, and don&#8217;t forget to add a nice closing as well as your name\u00a0\u2013 let&#8217;s say Jack.<\/p><p>Fill in the email field with David&#8217;s email, and hit the Deliver button. From there we are redirected to a personalized Thank You page that confirms the greeting card was sent successfully, and at the same time David receives an e-mail with a link to the greeting.<\/p><p>By clicking the link, David will be directed to the result page, and see the beautiful Christmas greeting made just for him.<\/p><p>A heads up in advance \u2013 this might get a little complicated, but we&#8217;ll go over it step by step, understand the logic behind it, see how things work behind the scenes, and then you&#8217;ll see it isn&#8217;t as complicated as you might&#8217;ve thought.<\/p><p>So let&#8217;s see what we&#8217;re up against by breaking it down and understand the bigger picture.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3cded03 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3cded03\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4d29292\" data-id=\"4d29292\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-712386b elementor-widget elementor-widget-heading\" data-id=\"712386b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Overview <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-688d869 elementor-widget elementor-widget-image\" data-id=\"688d869\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/elementor\/thumbs\/01-Diagram-screen-r4q74nlkdfdv4psf0wysp315kd6rnwsxj3j6fntrki.jpg\" title=\"01-Diagram screen\" alt=\"01-Diagram screen\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6922ef9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6922ef9\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ce6d239\" data-id=\"ce6d239\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-00b10b4 elementor-widget elementor-widget-text-editor\" data-id=\"00b10b4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The first screen is the main page. You can see the form on the left, and the greeting card on the right.<\/p><p>The second screen is the result page. This is the page your friends land on after having clicked the link in the email they receive. Here they will see your beautifully designed Christmas greeting.<\/p><p>The third screen is the Thank You (or Email Confirmation page). This is the page you are redirected to after having sent the Greeting and confirms that the message was sent successfully.<\/p><p>We\u2019ve designed and created these 3 pages with Elementor. So go ahead and create your own designs, because what we\u2019re doing here can be applied to any design.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-289e3c7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"289e3c7\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e36a7c6\" data-id=\"e36a7c6\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b8b9261 elementor-widget elementor-widget-heading\" data-id=\"b8b9261\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Main Page<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7c40b93 elementor-widget elementor-widget-image\" data-id=\"7c40b93\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2018\/12\/02-mirroring-live-preview.gif\" class=\"attachment-large size-large wp-image-20784\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d8441e6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d8441e6\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ef64b09\" data-id=\"ef64b09\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-715bee8 elementor-widget elementor-widget-text-editor\" data-id=\"715bee8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400\">First off, on the main page, we will focus on the first trick \u2013 real-time live preview.\u00a0<\/span>As you can see, while I\u2019m filling in the form on the left, the greeting card on the right is mirroring the same text.<\/p><p><span style=\"font-weight: 400\">Let&#8217;s head over to the editor. As you can see, the page is the same, we just cleaned it up a bit so we can focus on the technical side of things. <\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1d69f97 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1d69f97\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-24d8532\" data-id=\"24d8532\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-24ac2bf elementor-widget elementor-widget-image\" data-id=\"24ac2bf\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/elementor\/thumbs\/03-cleaned-up-wireframe-r4q72q1iboqn9klgb2wekkl1luplub4slj98x6owcy.jpg\" title=\"03-cleaned up wireframe\" alt=\"03-cleaned up wireframe\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-343b0f0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"343b0f0\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8172d30\" data-id=\"8172d30\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9a2e165 elementor-widget elementor-widget-text-editor\" data-id=\"9a2e165\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400\">We have a section with two columns \u2013 the column on the left has the form with all the fields we need.\u00a0<\/span><\/p><p><span style=\"font-weight: 400\">The column on the right has a bunch of form widgets stacked one on top of the other.\u00a0<\/span>We&#8217;ve also added a script to the HTML Widget you see here. This script helps us with the mirroring effect, and we&#8217;ve added some Custom <a class=\"wpil_keyword_link\" href=\"https:\/\/elementor.com\/blog\/what-is-css\/\"   title=\"CSS\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4304\">CSS<\/a> as well.<\/p><p>Let&#8217;s start off by understanding the relationship between the two columns and all of the forms. Each field in the form on the left corresponds with one of the fields in the forms on the right.<\/p><p><span style=\"font-weight: 400\">Now, let&#8217;s start off with the first field in the form on the left by filling in the necessary details: the type, label, placeholder, and let&#8217;s set the <\/span>Required <span style=\"font-weight: 400\">option to yes:\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9d3445c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9d3445c\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9ce26c0\" data-id=\"9ce26c0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f638dde elementor-widget elementor-widget-image\" data-id=\"f638dde\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/elementor\/thumbs\/04-advanced-tab-r4q78q8dzkylfvvf8ocli2128h410oz239axatsclu.gif\" title=\"04-advanced tab\" alt=\"04-advanced tab\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-833d55f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"833d55f\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8ece30c\" data-id=\"8ece30c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7c3e80e elementor-widget elementor-widget-text-editor\" data-id=\"7c3e80e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Moving on to the Advanced tab \u2013 give the field a unique ID.<\/p><p>On the form on the right, all you need to do is just repeat what we did before, just make sure to give it a unique ID of its own.<\/p><p>Now, in order for the mirroring to take place, we need to add this script to the HTML widget:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ff25fb8 elementor-widget elementor-widget-iframe-widget\" data-id=\"ff25fb8\" data-element_type=\"widget\" data-widget_type=\"iframe-widget.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<iframe src=\"https:\/\/pastebin.com\/embed_iframe\/dfhCAyL3\" width=\"100%\" height=\"100%\"><\/iframe>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-749d69e elementor-widget elementor-widget-text-editor\" data-id=\"749d69e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>It essentially allows us to connect the fields\u2019 ID\u2019s, which in turn allows for the \u2018live preview\u2019 state.\u00a0You can place it anywhere on your page. You can go ahead and add your own fields, as many as you like.<\/p><p>This helped us create a virtual hoiday greeting card, allowing us to preview it before sending it on to your family or friends.<\/p><p>Now, let&#8217;s make some minor adjustments in the advanced tab. Go to Custom CSS and paste this code:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e151ed6 elementor-widget elementor-widget-code-highlight\" data-id=\"e151ed6\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-css line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-css\">\n\t\t\t\t\t<xmp>#button_mirror {\n    display: none;\n}\nselector #form-field-name2 {\n    text-align:center;\n}\nselector .elementor-field-group .elementor-field-textual:focus {\n    box-shadow: inset 0 0 0 1px rgba(0,0,0,0);\n    outline: 0;\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-02a1216 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"02a1216\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ca9681f\" data-id=\"ca9681f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0ca3f38 elementor-widget elementor-widget-text-editor\" data-id=\"0ca3f38\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>This needs to be done in all of the form widgets on the right column and will remove the buttons, the \u2018focus\u2019 state border, and align all the text to the middle.<\/p><p>Pay attention though \u2013 in order to remove all of the buttons, you\u2019ll need to give each one a unique ID.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6483b39 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6483b39\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8fc7419\" data-id=\"8fc7419\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6c5de52 elementor-widget elementor-widget-heading\" data-id=\"6c5de52\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Actions After Submit<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1b04efa elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1b04efa\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-284af6f\" data-id=\"284af6f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-549d68f elementor-widget elementor-widget-image\" data-id=\"549d68f\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/elementor\/thumbs\/05-actions-after-submit-r4q77tc1cdpk5j77ks4nksbxfzm6jacgaqgxi554nm.gif\" title=\"05-actions after submit\" alt=\"05-actions after submit\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-236e8f7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"236e8f7\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a778100\" data-id=\"a778100\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4389138 elementor-widget elementor-widget-text-editor\" data-id=\"4389138\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400\">Moving on to part 2 &#8211; actions after submit.\u00a0<\/span>The &#8216;Actions after submit&#8217; option in the form widget allows us to set an action that will be performed after a user submits the form.<\/p><p><span style=\"font-weight: 400\">We will add two actions.\u00a0<\/span>Let\u2019s start with the first one:<\/p><p><span style=\"font-weight: 400\">Click on the &#8216;add action&#8217; field and in the Dropdown,\u00a0<\/span>choose &#8217;email&#8217;. You\u2019ll find a new \u2018email\u2019 tab below.\u00a0It comes with pre-built parameters, but we can change any of those as we wish. We can set the receiver\u2019s email, a subject, the message, and more.\u00a0<\/p><p><span style=\"font-weight: 400\">In the message field, we can add HTML as well, this way we can customize the message in the email.\u00a0<\/span>You can find HTML tags easily via google search.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-50edc7f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"50edc7f\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7ed00c8\" data-id=\"7ed00c8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8c4fa14 elementor-widget elementor-widget-text-editor\" data-id=\"8c4fa14\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Now, let\u2019s focus on the second trick \u2013<\/p><p>The link inside the email message your friend receives, needs to be dynamic for it to create personalized content.<\/p><p>In the past months, we\u2019ve really improved Elementor\u2019s dynamic abilities. Which gets us right to the next action \u2013\u00a0<a href=\"https:\/\/elementor.com\/help\/dynamic-request-parameter-pro\/\" target=\"_blank\" rel=\"noopener\">Request Parameter<\/a>. Before we understand how it works, let\u2019s see what it does:<\/p><p>The form knows how to take all the parameters filled inside it, send an email to our friend who upon clicking the link in the email, will see the custom Christmas greeting with all the details we filled in on the form.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-bd5dc8d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"bd5dc8d\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f889e3e\" data-id=\"f889e3e\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a179659 elementor-widget elementor-widget-heading\" data-id=\"a179659\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Result Page<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bb5ae17 elementor-widget elementor-widget-image\" data-id=\"bb5ae17\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/elementor\/thumbs\/06-results-pave-r4q6zun9fwt3sgrn2u7fyaoc9gv8blqbjbhu4qy7de.gif\" title=\"06-results pave\" alt=\"06-results pave\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c8f51c3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c8f51c3\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9cbb71d\" data-id=\"9cbb71d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b1d77fc elementor-widget elementor-widget-text-editor\" data-id=\"b1d77fc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Now, Let&#8217;s see how to set up the Result page. Let&#8217;s start off by dragging in the Heading widget. Then, in the Content tab, under Title, click on DYNAMIC and under Site choose the Request Parameter.<\/p><p><span style=\"font-weight: 400\">Click on the request parameter field and in the settings dropdown, make sure the Type is set to GET\u2026 it should so by default. The GET field allows us to receive data from the <a class=\"wpil_keyword_link\" href=\"https:\/\/elementor.com\/blog\/url\/\"   title=\"URL\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"6982\">URL<\/a>. in our case, the data will arrive from the filled-in form connected to the link in the email. <\/span><\/p><p><span style=\"font-weight: 400\">Go ahead and fill in the parameter name. In This case, I&#8217;ve used &#8216;fname&#8217;.\u00a0<\/span>We also added some fallback text in the Advanced Dropdown. Just make sure that the parameter name is written altogether, without any spaces in between and use Latin characters. You can also use the dash and underline symbols.<\/p><p><span style=\"font-weight: 400\">Now that we&#8217;ve added names to all of the parameters, we can go back to the email section in the form on the main page and define the fields&#8217; parameter names as well,\u00a0<\/span>this way we connect them up with the dynamic fields on the result page.\u00a0We also need to transfer the data via the link sent in the email to your friend.\u00a0<\/p><p><span style=\"font-weight: 400\">Sounds a bit complicated, so let&#8217;s go over this link and see how it works:<\/span><\/p><p><span style=\"font-weight: 400\">First, in the link tag we see the url of the result page.\u00a0<\/span>The question mark separates the domain from the query string, which contains all of the different parameters we defined before.<\/p><p>Now, let&#8217;s look at it a bit closer.\u00a0Fname is equal to its corresponding field ID in the result page. In our case it is equal to ID name1.<\/p><p>Let&#8217;s see another example, Message is equal to its corresponding field ID in the result page. In our case it is equal to ID message1.<br \/>As you can see, this way we link the parameters from the result page, to the fields from the main page, where each parameter has its corresponding field.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ae8ec7f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ae8ec7f\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8f919aa\" data-id=\"8f919aa\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6f431a7 elementor-widget elementor-widget-image\" data-id=\"6f431a7\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/elementor\/thumbs\/08-url-magic-r4q760h68t8rwftf3i3eaqp4gehus66z1tgfe1taky.gif\" title=\"08-url magic\" alt=\"08-url magic\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4837a04 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4837a04\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-42230d9\" data-id=\"42230d9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4cf1c28 elementor-widget elementor-widget-text-editor\" data-id=\"4cf1c28\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400\">This is where the magic happens. The link we send connects the fields of the main page to the dynamic parameters of the Result page. Let&#8217;s go through the whole link and see that we have all the fields. Between each field we make sure to have the Ampersand symbol, it separates them.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-15fabb3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"15fabb3\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ef4604b\" data-id=\"ef4604b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-042c801 elementor-widget elementor-widget-heading\" data-id=\"042c801\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Thank You Page<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-700158b elementor-widget elementor-widget-image\" data-id=\"700158b\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2018\/12\/email-confirmation.gif\" class=\"attachment-full size-full wp-image-20794\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e38d595 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e38d595\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0c83f73\" data-id=\"0c83f73\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6fa2c50 elementor-widget elementor-widget-text-editor\" data-id=\"6fa2c50\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Now all that\u2019s left is to talk about the Thank You page<span style=\"font-weight: bold\">.\u00a0<\/span>This page informs the sender that the message was sent successfully.\u00a0<\/p><p>We need to go back to the form on the main page, and under &#8216;Actions after submit&#8217;, choose Redirect. In the Redirect To field, fill in the link of the Thank You page. In this case, the name of the sender is also connected so that the Thank You page is personalized as well.<\/p><p><span style=\"font-weight: 400\">That\u2019s it, we&#8217;re done! Of course, y<\/span>ou can send as many wishes as you like, each time the content changes dynamically.\u00a0<\/p><p>From all of us at Elementor, we wish you a Merry Christmas and a Happy New Year!<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f7fd36d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f7fd36d\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9c1f76f\" data-id=\"9c1f76f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-11b49af elementor-align-center elementor-widget elementor-widget-button\" data-id=\"11b49af\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-lg\" href=\"https:\/\/elementor.com\/pages\/christmas-greeting-card-main\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Try out the fully functional Greeting Card Generator<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Want to wish your loved ones a merry Christmas and happy holidays? In this post, we&#8217;ll show you how to create a stunning Greeting Card Generator with Elementor! Heads Up \u2013 this one is for our advanced users.<\/p>\n","protected":false},"author":83115,"featured_media":20826,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[45,44,17],"tags":[79,173],"marketing_persona":[],"marketing_intent":[],"class_list":["post-20722","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","category-elementor","category-inspiration","tag-build","tag-video"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How Our Team Created a Holiday Greeting Card Generator From Scratch<\/title>\n<meta name=\"description\" content=\"Want to wish your loved ones a merry Christmas and happy holidays? In this post, we&#039;ll show you how to create a stunning Greeting Card Generator with Elementor! Heads Up \u2013 this one is for our advanced users.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Our Team Created a Holiday Greeting Card Generator From Scratch\" \/>\n<meta property=\"og:description\" content=\"Want to wish your loved ones a merry Christmas and happy holidays? In this post, we&#039;ll show you how to create a stunning Greeting Card Generator with Elementor! Heads Up \u2013 this one is for our advanced users.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/elemntor\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-24T14:51:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/oovolzcf.elementor.cloud\/wp-content\/uploads\/2018\/12\/Xmas-Blog-Cover1200X628.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Aviv Umflat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@elemntor\" \/>\n<meta name=\"twitter:site\" content=\"@elemntor\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Aviv Umflat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/\"},\"author\":{\"name\":\"Aviv Umflat\",\"@id\":\"https:\/\/elementor.com\/blog\/#\/schema\/person\/ae4e41b8326b0e39685e6b15a5386047\"},\"headline\":\"How Our Team Created a Holiday Greeting Card Generator From Scratch\",\"datePublished\":\"2018-12-24T14:51:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/\"},\"wordCount\":1532,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/elementor.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2018\/12\/Xmas-Blog-Cover1200X628.png\",\"keywords\":[\"Build\",\"Video\"],\"articleSection\":[\"Development\",\"Elementor\",\"Inspiration\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/\",\"url\":\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/\",\"name\":\"How Our Team Created a Holiday Greeting Card Generator From Scratch\",\"isPartOf\":{\"@id\":\"https:\/\/elementor.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2018\/12\/Xmas-Blog-Cover1200X628.png\",\"datePublished\":\"2018-12-24T14:51:12+00:00\",\"description\":\"Want to wish your loved ones a merry Christmas and happy holidays? In this post, we'll show you how to create a stunning Greeting Card Generator with Elementor! Heads Up \u2013 this one is for our advanced users.\",\"breadcrumb\":{\"@id\":\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#primaryimage\",\"url\":\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2018\/12\/Xmas-Blog-Cover1200X628.png\",\"contentUrl\":\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2018\/12\/Xmas-Blog-Cover1200X628.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\/\/elementor.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Inspiration\",\"item\":\"https:\/\/elementor.com\/blog\/category\/inspiration\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How Our Team Created a Holiday Greeting Card Generator From Scratch\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/elementor.com\/blog\/#website\",\"url\":\"https:\/\/elementor.com\/blog\/\",\"name\":\"Elementor\",\"description\":\"Website Builder for WordPress\",\"publisher\":{\"@id\":\"https:\/\/elementor.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/elementor.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/elementor.com\/blog\/#organization\",\"name\":\"Elementor\",\"url\":\"https:\/\/elementor.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/elementor.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2025\/06\/images.png\",\"contentUrl\":\"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2025\/06\/images.png\",\"width\":225,\"height\":225,\"caption\":\"Elementor\"},\"image\":{\"@id\":\"https:\/\/elementor.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/elemntor\/\",\"https:\/\/x.com\/elemntor\",\"https:\/\/www.instagram.com\/elementor\/\",\"https:\/\/www.youtube.com\/channel\/UCt9kG_EDX8zwGSC1-ycJJVA?sub_confirmation=1\",\"https:\/\/en.wikipedia.org\/wiki\/Elementor\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/elementor.com\/blog\/#\/schema\/person\/ae4e41b8326b0e39685e6b15a5386047\",\"name\":\"Aviv Umflat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/elementor.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/81d3a3df7ba3b7ee3872ef5e732efdcc6ff146ee1eab9065413057125c779db5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/81d3a3df7ba3b7ee3872ef5e732efdcc6ff146ee1eab9065413057125c779db5?s=96&d=mm&r=g\",\"caption\":\"Aviv Umflat\"},\"description\":\"Aviv is a Product Manager at Elementor with over 12 years of web design experience. He loves to sleep, make sarcastic remarks and eat falafel.\",\"url\":\"https:\/\/elementor.com\/blog\/author\/avivumflat\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How Our Team Created a Holiday Greeting Card Generator From Scratch","description":"Want to wish your loved ones a merry Christmas and happy holidays? In this post, we'll show you how to create a stunning Greeting Card Generator with Elementor! Heads Up \u2013 this one is for our advanced users.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/","og_locale":"en_US","og_type":"article","og_title":"How Our Team Created a Holiday Greeting Card Generator From Scratch","og_description":"Want to wish your loved ones a merry Christmas and happy holidays? In this post, we'll show you how to create a stunning Greeting Card Generator with Elementor! Heads Up \u2013 this one is for our advanced users.","og_url":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/","og_site_name":"Blog","article_publisher":"https:\/\/www.facebook.com\/elemntor\/","article_published_time":"2018-12-24T14:51:12+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/oovolzcf.elementor.cloud\/wp-content\/uploads\/2018\/12\/Xmas-Blog-Cover1200X628.png","type":"image\/png"}],"author":"Aviv Umflat","twitter_card":"summary_large_image","twitter_creator":"@elemntor","twitter_site":"@elemntor","twitter_misc":{"Written by":"Aviv Umflat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#article","isPartOf":{"@id":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/"},"author":{"name":"Aviv Umflat","@id":"https:\/\/elementor.com\/blog\/#\/schema\/person\/ae4e41b8326b0e39685e6b15a5386047"},"headline":"How Our Team Created a Holiday Greeting Card Generator From Scratch","datePublished":"2018-12-24T14:51:12+00:00","mainEntityOfPage":{"@id":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/"},"wordCount":1532,"commentCount":0,"publisher":{"@id":"https:\/\/elementor.com\/blog\/#organization"},"image":{"@id":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#primaryimage"},"thumbnailUrl":"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2018\/12\/Xmas-Blog-Cover1200X628.png","keywords":["Build","Video"],"articleSection":["Development","Elementor","Inspiration"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/","url":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/","name":"How Our Team Created a Holiday Greeting Card Generator From Scratch","isPartOf":{"@id":"https:\/\/elementor.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#primaryimage"},"image":{"@id":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#primaryimage"},"thumbnailUrl":"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2018\/12\/Xmas-Blog-Cover1200X628.png","datePublished":"2018-12-24T14:51:12+00:00","description":"Want to wish your loved ones a merry Christmas and happy holidays? In this post, we'll show you how to create a stunning Greeting Card Generator with Elementor! Heads Up \u2013 this one is for our advanced users.","breadcrumb":{"@id":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#primaryimage","url":"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2018\/12\/Xmas-Blog-Cover1200X628.png","contentUrl":"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2018\/12\/Xmas-Blog-Cover1200X628.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/elementor.com\/blog\/greeting-card-generator-elementor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/elementor.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Inspiration","item":"https:\/\/elementor.com\/blog\/category\/inspiration\/"},{"@type":"ListItem","position":3,"name":"How Our Team Created a Holiday Greeting Card Generator From Scratch"}]},{"@type":"WebSite","@id":"https:\/\/elementor.com\/blog\/#website","url":"https:\/\/elementor.com\/blog\/","name":"Elementor","description":"Website Builder for WordPress","publisher":{"@id":"https:\/\/elementor.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/elementor.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/elementor.com\/blog\/#organization","name":"Elementor","url":"https:\/\/elementor.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/elementor.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2025\/06\/images.png","contentUrl":"https:\/\/elementor.com\/blog\/wp-content\/uploads\/2025\/06\/images.png","width":225,"height":225,"caption":"Elementor"},"image":{"@id":"https:\/\/elementor.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/elemntor\/","https:\/\/x.com\/elemntor","https:\/\/www.instagram.com\/elementor\/","https:\/\/www.youtube.com\/channel\/UCt9kG_EDX8zwGSC1-ycJJVA?sub_confirmation=1","https:\/\/en.wikipedia.org\/wiki\/Elementor"]},{"@type":"Person","@id":"https:\/\/elementor.com\/blog\/#\/schema\/person\/ae4e41b8326b0e39685e6b15a5386047","name":"Aviv Umflat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/elementor.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/81d3a3df7ba3b7ee3872ef5e732efdcc6ff146ee1eab9065413057125c779db5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/81d3a3df7ba3b7ee3872ef5e732efdcc6ff146ee1eab9065413057125c779db5?s=96&d=mm&r=g","caption":"Aviv Umflat"},"description":"Aviv is a Product Manager at Elementor with over 12 years of web design experience. He loves to sleep, make sarcastic remarks and eat falafel.","url":"https:\/\/elementor.com\/blog\/author\/avivumflat\/"}]}},"_links":{"self":[{"href":"https:\/\/elementor.com\/blog\/wp-json\/wp\/v2\/posts\/20722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elementor.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/elementor.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/elementor.com\/blog\/wp-json\/wp\/v2\/users\/83115"}],"replies":[{"embeddable":true,"href":"https:\/\/elementor.com\/blog\/wp-json\/wp\/v2\/comments?post=20722"}],"version-history":[{"count":4,"href":"https:\/\/elementor.com\/blog\/wp-json\/wp\/v2\/posts\/20722\/revisions"}],"predecessor-version":[{"id":93711,"href":"https:\/\/elementor.com\/blog\/wp-json\/wp\/v2\/posts\/20722\/revisions\/93711"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elementor.com\/blog\/wp-json\/wp\/v2\/media\/20826"}],"wp:attachment":[{"href":"https:\/\/elementor.com\/blog\/wp-json\/wp\/v2\/media?parent=20722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/elementor.com\/blog\/wp-json\/wp\/v2\/categories?post=20722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/elementor.com\/blog\/wp-json\/wp\/v2\/tags?post=20722"},{"taxonomy":"marketing_persona","embeddable":true,"href":"https:\/\/elementor.com\/blog\/wp-json\/wp\/v2\/marketing_persona?post=20722"},{"taxonomy":"marketing_intent","embeddable":true,"href":"https:\/\/elementor.com\/blog\/wp-json\/wp\/v2\/marketing_intent?post=20722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}