• Resolved solutiodesign

    (@solutiodesign)


    Quick explanation – Using latest WordPress, Theme 2015, and latest Worona plug-in. I am using Gravity Forms to submit a form with several fields. That form then creates a Post with “post meta”. Everything shows on the website. And I do see the pages in the app (using Corona Simulator). The app only picks up the “post content” but not the “post meta”. Can I display “post meta” within the app? If so which file or files do I edit.

    Thanks… Red

    https://www.ads-software.com/plugins/worona/

Viewing 8 replies - 1 through 8 (of 8 total)
  • Plugin Author luisherranz

    (@luisherranz)

    Hi @solutiodesign,

    That’s an interesting question.

    How are you rendering your “post meta”? With custom PHP code?
    Could you please send us an example to [email protected]?

    Thanks in advance!
    All the best,
    Luis.

    Thread Starter solutiodesign

    (@solutiodesign)

    Sent the email. Thanks!

    Plugin Author luisherranz

    (@luisherranz)

    Great, thanks!

    If you want to display that content inside Worona, you have to convert it to a shortcode.

    You can do it manually in your php file, using the shortcode API of WordPress.
    https://codex.www.ads-software.com/Shortcode_API

    Or you can use a plugin, like Shortcode Exec, for example.
    https://www.ads-software.com/plugins/shortcode-exec-php/

    In the end, if the info ends up in a shortcode, it will be part of the content and Worona will render it in your app.

    Thread Starter solutiodesign

    (@solutiodesign)

    Thanks Luis,

    One clarification: All the pages, and the text therein, are built on the fly by submitting a form via Gravity Forms (which posts certain form fields to the post meta data). Since the goal is not to touch the page or manually adjust. Is it possible to modify the app files to display the meta data without shortcodes?

    Thanks for your patience… Red

    Plugin Author luisherranz

    (@luisherranz)

    I see.

    Then there’s two other ways you can do this. Adding the custom fields to the content with a gravity forms hook:
    https://www.gravityhelp.com/documentation/article/gform_after_submission/
    Check the example 1. Update Post.
    That way, the custom field will end in the content, and it will be rendered by Worona.

    Or you can modify Worona itself, but that’s more complex. If the first solution doesn’t work for you, let us know.

    Thread Starter solutiodesign

    (@solutiodesign)

    Thanks… Will give that a shot!

    Thread Starter solutiodesign

    (@solutiodesign)

    Ok.. we are going to try to edit on the Worona side as we would like to control stylization. My programmer buddy can handle the coding, but wanted to know which files to change on this main goal of displaying in meta data. We can start there and if more assistance is needed we can ping you.

    Many thanks for your direction. I realize this is a free app so all this help is great!

    Plugin Author luisherranz

    (@luisherranz)

    First, you need to get the custom fields in the WP-API response with something like this in your functions.php file:

    add_filter( 'json_prepare_post', function ( $data, $post, $context) {
                    $custom_fields = get_post_custom( $post->ID );
    
            	foreach ( $custom_fields as $field_key => $field_values ) {
            		foreach ( $field_values as $key => $value ) {
    
            			if ( strpos($field_key, '_') !== 0 ) {
                            $uns_value = @unserialize($value);
                            if ($value === 'b:0;' || $uns_value !== false) {
                                $data->meta->{ $field_key } = $uns_value;
                            } else {
                                $data->meta->{ $field_key } = $value;
                            }
            			}
            		}
            	}
    
        		return $data;
    }, 10, 3 );

    Then you should be able to access the custom fields data in the lua code using content.meta.name-of-your-key.

    You can add a filter to include more HTML in the scene using something like this:

    url     = worona.scene:getCurrentSceneUrl()
    content = worona.content:getPost( 'post', url )
    
    local function wrap_content(html)
      return "<p>something before content</p>" .. html .. "<p>something after content</p>"
    end
    worona:add_filter("html_before_render", wrap_content, 10);

    I would create an extension (put your code in the extensions folder and include it in extensions.json) and put everything there.

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Can I display "post meta" within the app?’ is closed to new replies.