From 61ef972391b0677c7bfb70e460456be2a58ddb54 Mon Sep 17 00:00:00 2001 From: Kelly Dwan Date: Tue, 8 Oct 2019 12:54:00 -0400 Subject: [PATCH] Add a helper function to fetch pledge data --- plugins/wporg-5ftf/includes/pledge-form.php | 6 +++- plugins/wporg-5ftf/includes/pledge-meta.php | 35 ++++++++++++++++++--- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/plugins/wporg-5ftf/includes/pledge-form.php b/plugins/wporg-5ftf/includes/pledge-form.php index 9e75ce6..70c1bdd 100755 --- a/plugins/wporg-5ftf/includes/pledge-form.php +++ b/plugins/wporg-5ftf/includes/pledge-form.php @@ -1,6 +1,6 @@ post_type !== Pledge\CPT_ID ) { + if ( ! $pledge instanceof WP_Post || Pledge\CPT_ID !== $pledge->post_type ) { return; } @@ -217,7 +217,7 @@ function save_pledge( $pledge_id, $pledge ) { return; } - if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || $pledge->post_status === 'auto-draft' ) { + if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || 'auto-draft' === $pledge->post_status ) { return; } @@ -279,6 +279,31 @@ function update_generated_meta( $meta_id, $object_id, $meta_key, $_meta_value ) } } +/** + * Get the metadata for a given pledge, or a default set if no pledge is provided. + * + * @param int $pledge_id + * @param string $context + * @return array Pledge data + */ +function get_pledge_meta( $pledge_id = 0, $context = '' ) { + $pledge = get_post( $pledge_id ); + + $keys = get_pledge_meta_config( $context ); + $meta = array(); + + foreach ( $keys as $key => $config ) { + if ( ! $pledge instanceof WP_Post ) { + $meta[ $key ] = $config['default'] ?: ''; + } else { + $meta_key = META_PREFIX . $key; + $meta[ $key ] = get_post_meta( $pledge->ID, $meta_key, true ); + } + } + + return $meta; +} + /** * Isolate the domain from a given URL and remove the `www.` if necessary. *