Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,14 @@ public function get_fields() {
),
'id' => '_faux_engagement_trigger_post_course',
'label' => __( 'Select a Course', 'lifterlms' ),
'placeholder' => __( 'Any Course', 'lifterlms' ),
),

'lesson' => array(
'controller_value' => array( 'lesson_completed' ),
'id' => '_faux_engagement_trigger_post_lesson',
'label' => __( 'Select a Lesson', 'lifterlms' ),
'placeholder' => __( 'Any Lesson', 'lifterlms' ),
),

'llms_access_plan' => array(
Expand All @@ -85,6 +87,7 @@ public function get_fields() {
),
'id' => '_faux_engagement_trigger_post_access_plan',
'label' => __( 'Select an Access Plan', 'lifterlms' ),
'placeholder' => __( 'Any Access Plan', 'lifterlms' ),
),

'llms_membership' => array(
Expand All @@ -94,6 +97,7 @@ public function get_fields() {
),
'id' => '_faux_engagement_trigger_post_membership',
'label' => __( 'Select a Membership', 'lifterlms' ),
'placeholder' => __( 'Any Membership', 'lifterlms' ),
),

'llms_quiz' => array(
Expand All @@ -104,12 +108,14 @@ public function get_fields() {
),
'id' => '_faux_engagement_trigger_post_quiz',
'label' => __( 'Select a Quiz', 'lifterlms' ),
'placeholder' => __( 'Any Quiz', 'lifterlms' ),
),

'section' => array(
'controller_value' => array( 'section_completed' ),
'id' => '_faux_engagement_trigger_post_section',
'label' => __( 'Select a Section', 'lifterlms' ),
'placeholder' => __( 'Any Section', 'lifterlms' ),
),

);
Expand All @@ -118,22 +124,28 @@ public function get_fields() {

$data['controller_value'] = apply_filters( 'llms_engagement_controller_values_' . $post_type, $data['controller_value'] );

if ( in_array( get_post_meta( $this->post->ID, $this->prefix . 'trigger_type', true ), $data['controller_value'] ) ) {
$val = llms_make_select2_post_array( array( get_post_meta( $this->post->ID, $this->prefix . 'engagement_trigger_post', true ) ) );
$trigger_post_val = get_post_meta( $this->post->ID, $this->prefix . 'engagement_trigger_post', true );
if ( 'any' === $trigger_post_val || empty( $trigger_post_val ) ) {
$val = array();
} elseif ( in_array( get_post_meta( $this->post->ID, $this->prefix . 'trigger_type', true ), $data['controller_value'] ) ) {
$val = llms_make_select2_post_array( array( $trigger_post_val ) );
} else {
$val = array();
}

$placeholder = isset( $data['placeholder'] ) ? $data['placeholder'] : $data['label'];

$fields[] = array(
'allow_null' => false,
'class' => 'llms-select2-post',
'controller' => '#' . $this->prefix . 'trigger_type',
'controller_value' => implode( ',', $data['controller_value'] ),
'data_attributes' => array(
'allow_clear' => true,
'placeholder' => $data['label'],
'placeholder' => $placeholder,
'post-type' => $post_type,
),
'desc' => __( 'Leave blank to apply to all.', 'lifterlms' ),
'id' => $data['id'],
'label' => $data['label'],
'type' => 'select',
Expand All @@ -156,19 +168,24 @@ public function get_fields() {
);
}

$track_selected = get_post_meta( $this->post->ID, $this->prefix . 'engagement_trigger_post', true );
if ( 'any' === $track_selected ) {
$track_selected = '';
}

$fields[] = array(
'allow_null' => false,
'allow_null' => true,
'class' => 'llms-select2',
'controller' => '#' . $this->prefix . 'trigger_type',
'controller_value' => implode( ',', apply_filters( 'llms_engagement_controller_values_track', array( 'course_track_completed' ) ) ),
'data_attributes' => array(
'allow_clear' => true,
'placeholder' => __( 'Select a Course Track', 'lifterlms' ),
'placeholder' => __( 'Any Course Track', 'lifterlms' ),
),
'id' => '_faux_engagement_trigger_post_track',
'label' => __( 'Select a Course Track', 'lifterlms' ),
'type' => 'select',
'selected' => get_post_meta( $this->post->ID, $this->prefix . 'engagement_trigger_post', true ),
'selected' => $track_selected,
'value' => $track_options,
);

Expand Down Expand Up @@ -333,6 +350,11 @@ public function save( $post_id ) {

$val = llms_filter_input_sanitize_string( INPUT_POST, '_faux_engagement_trigger_post_' . $var );

// An empty trigger post means "any" — store explicitly so the intent is clear.
if ( empty( $val ) ) {
$val = 'any';
}

} else {

$val = '';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public function manage_columns( $column, $post_id ) {
echo isset( $triggers[ $trigger ] ) ? esc_html( $triggers[ $trigger ] ) : esc_html( $trigger );

$tid = get_post_meta( $post_id, '_llms_engagement_trigger_post', true );
if ( $tid ) {
if ( $tid && 'any' !== $tid ) {

echo '<br>';

Expand All @@ -90,6 +90,10 @@ public function manage_columns( $column, $post_id ) {

printf( '<a href="%s">%s (ID# %d)</a>', esc_url( $link ), esc_html( $title ), esc_html( $tid ) );

} elseif ( 'any' === $tid ) {

echo '<br><em>' . esc_html__( 'Any', 'lifterlms' ) . '</em>';

}

break;
Expand Down
5 changes: 4 additions & 1 deletion includes/class.llms.engagements.php
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,10 @@ private function get_engagements( $trigger_type, $related_post_id = '' ) {

$related_select = ', relation_meta.meta_value AS related_post_id';
$related_join = "LEFT JOIN $wpdb->postmeta AS relation_meta ON triggers.ID = relation_meta.post_id";
$related_where = $wpdb->prepare( "AND relation_meta.meta_key = '_llms_engagement_trigger_post' AND relation_meta.meta_value = %d", $related_post_id );
$related_where = $wpdb->prepare(
"AND relation_meta.meta_key = '_llms_engagement_trigger_post' AND ( relation_meta.meta_value = %d OR relation_meta.meta_value = 'any' )",
$related_post_id
);

}

Expand Down
Loading