PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.5
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.5
8.0.5 8.0.4 8.0.3 8.0.1 8.0.2 8.0.0 7.9.9.7 7.9.9.6 7.9.9.5 7.9.9.4 7.9.9.3 7.9.9.2 7.9.9.1 7.9.9 7.9.8 7.9.7 7.9.6 7.9.5 7.9.4 7.9.3 7.9.2 7.9.1 7.9.0 7.8.9 7.8.8 All 47 releases
← All changes | integrations/surecart/includes/requirements.php +73 -0 7.9.3 → 8.0.5 View file →
@@ -1,0 +1,73 @@
1 +<?php
2 +/**
3 + * Requirements
4 + *
5 + * @package GamiPress\SureCart\Requirements
6 + * @since 1.0.0
7 + */
8 +// Exit if accessed directly
9 +if( !defined( 'ABSPATH' ) ) exit;
10 +
11 +/**
12 + * Add the form field to the requirement object
13 + *
14 + * @param $requirement
15 + * @param $requirement_id
16 + *
17 + * @return array
18 + */
19 +function gamipress_surecart_requirement_object( $requirement, $requirement_id ) {
20 +
21 + if( isset( $requirement['trigger_type'] )
22 + && ( $requirement['trigger_type'] === 'gamipress_surecart_specific_product_purchase') ) {
23 + // Field form
24 + $requirement['surecart_product'] = get_post_meta( $requirement_id, '_gamipress_surecart_product', true );
25 + }
26 +
27 + return $requirement;
28 +}
29 +add_filter( 'gamipress_requirement_object', 'gamipress_surecart_requirement_object', 10, 2 );
30 +
31 +/**
32 + * Form field on requirements UI
33 + *
34 + * @param $requirement_id
35 + * @param $post_id
36 + */
37 +function gamipress_surecart_requirement_ui_fields( $requirement_id, $post_id ) {
38 +
39 + // Get the products
40 + $products = SureCart\Models\Product::get();
41 + $selected = get_post_meta( $requirement_id, '_gamipress_surecart_product', true ); ?>
42 +
43 + <select class="select-surecart-product">
44 + <?php foreach( $products as $product ) : ?>
45 + <option value="<?php echo $product->id; ?>" <?php selected( $selected, $product->id ); ?>><?php echo $product->name; ?></option>
46 + <?php endforeach; ?>
47 + </select>
48 +
49 + <?php
50 +}
51 +add_action( 'gamipress_requirement_ui_html_after_achievement_post', 'gamipress_surecart_requirement_ui_fields', 10, 2 );
52 +
53 +/**
54 + * Custom handler to save the form on requirements UI
55 + *
56 + * @param $requirement_id
57 + * @param $requirement
58 + */
59 +function gamipress_surecart_ajax_update_requirement( $requirement_id, $requirement ) {
60 +
61 + $requirement = wp_parse_args( $requirement, array(
62 + 'surecart_product' => '',
63 + ) );
64 +
65 + if( isset( $requirement['trigger_type'] )
66 + && ( $requirement['trigger_type'] === 'gamipress_surecart_specific_product_purchase' ) ) {
67 +
68 + // Field form
69 + update_post_meta( $requirement_id, '_gamipress_surecart_product', $requirement['surecart_product'] );
70 + }
71 +
72 +}
73 +add_action( 'gamipress_ajax_update_requirement', 'gamipress_surecart_ajax_update_requirement', 10, 2 );