/** * Output the redemption code for this achievement. * * @param int $achievement_id Optional. Achievement ID * @since Achievements (3.1) */ function dpa_achievement_redemption_code($achievement_id = 0) { echo esc_html(dpa_get_achievement_redemption_code($achievement_id)); }
/** * Achievements metabox * * Contains fields to set the karma points, pick between action/event, and the list of events. * * @param WP_Post $post The post being added or edited * @since Achievements (3.0) */ function dpa_achievement_metabox(WP_Post $post) { // Get all events grouped by the extension which provided them $events = dpa_get_all_events_details(); // Get existing values (if this is an edit) $existing_points = dpa_get_achievement_points($post->ID); $existing_target = dpa_get_achievement_target($post->ID); $existing_events = wp_get_post_terms($post->ID, dpa_get_event_tax_id(), array('fields' => 'ids')); $existing_type = empty($existing_events) && !empty($_GET['action']) && 'edit' === $_GET['action'] ? 'award' : 'event'; $existing_code = dpa_get_achievement_redemption_code($post->ID); // Ensure sane defaults if (empty($existing_points)) { $existing_points = 0; } if (empty($existing_target)) { $existing_target = 1; } ?> <div class="misc-pub-section dpa-karma"> <label for="dpa-points"><?php _e('Karma points:', 'achievements'); ?> </label> <input type="number" name="dpa_points" id="dpa-points" value="<?php echo esc_attr($existing_points); ?> " /> </div> <div class="misc-pub-section dpa-type"> <label for="dpa_type"><?php _ex('Type:', 'type of achievement', 'achievements'); ?> </label> <input type="radio" name="dpa_type" id="dpa-type-award" value="award" <?php checked($existing_type, 'award'); ?> ><?php _ex(' Award', 'type of achievement', 'achievements'); ?> </input> <input type="radio" name="dpa_type" id="dpa-type-event" value="event" <?php checked($existing_type, 'event'); ?> ><?php _ex(' Event', 'type of achievement', 'achievements'); ?> </input> <p class="hint"><?php _e("An <em>award</em> is given by a site admin, whereas an <em>event</em> is unlocked automatically when its criteria have been met.", 'achievements'); ?> </p> <select id="dpa-event" name="dpa_event[]" style="visibility: hidden" data-placeholder="<?php esc_attr_e('Press here to pick events', 'achievements'); ?> " class="chzn-select <?php if (is_rtl()) { echo 'chzn-rtl'; } ?> " multiple="multiple"> <option value=""></option> <?php foreach ($events as $extension => $extension_events) { ?> <optgroup label="<?php echo esc_attr($extension); ?> "> <?php foreach ($extension_events as $event) { ?> <option value="<?php echo esc_attr($event['id']); ?> " <?php selected(in_array($event['id'], $existing_events), true); ?> ><?php echo esc_html($event['description']); ?> </option> <?php } ?> </optgroup> <?php } ?> </select> </div> <div class="misc-pub-section dpa-target"> <label for="dpa_target"><?php _ex('Events repeat:', "Number of times an achievement’s events need to repeat before the achievement is awarded", 'achievements'); ?> </label> <input type="number" name="dpa_target" id="dpa-target" min="1" value="<?php echo esc_attr($existing_target); ?> " /> <p class="hint"><?php _e("Number of times the events need to repeat before the achievement is awarded.", 'achievements'); ?> </p> </div> <div class="misc-pub-section dpa-redemption-code"> <label for="dpa-code"><?php _e('Redemption code:', 'achievements'); ?> </label> <input id="dpa-code" value="<?php echo esc_attr($existing_code); ?> " name="dpa_code" type="text" /> <p class="hint"><?php _e("Users can enter this code into the Redemption widget to unlock the achievement.", 'achievements'); ?> </p> </div> <?php wp_nonce_field('dpa_achievement_metabox_save', 'dpa_achievement_metabox'); do_action('dpa_achievement_metabox'); }