| @@ -62,9 +62,9 @@ | ||
| 62 | 62 | |
| 63 | 63 | global $wpdb; |
| 64 | 64 | $table = $wpdb->prefix . self::TABLE_SUFFIX; |
| 65 | 65 | |
| 66 | - $wpdb->query( $wpdb->prepare( | |
| 66 | + $inserted = $wpdb->query( $wpdb->prepare( | |
| 67 | 67 | "INSERT IGNORE INTO {$table} (type, funnel_id, session_hash, visit_date, date_created) |
| 68 | 68 | VALUES (%s, %d, %s, %s, %s)", |
| 69 | 69 | $type, |
| 70 | 70 | (int) $funnel_id, |
| @@ -71,8 +71,20 @@ | ||
| 71 | 71 | $session_hash, |
| 72 | 72 | $visit_date, |
| 73 | 73 | $date_created |
| 74 | 74 | ) ); |
| 75 | + | |
| 76 | + if ( $inserted ) { | |
| 77 | + /** | |
| 78 | + * Fires when a new unique checkout visit is recorded (a repeat visit | |
| 79 | + * the same day is ignored by the table's unique key). | |
| 80 | + * | |
| 81 | + * @since 3.14.0 | |
| 82 | + * | |
| 83 | + * @param string $type 'funnel' or 'store'. | |
| 84 | + */ | |
| 85 | + do_action( 'wpfunnels/checkout_visit_recorded', $type ); | |
| 86 | + } | |
| 75 | 87 | } |
| 76 | 88 | |
| 77 | 89 | /** |
| 78 | 90 | * Count unique funnel checkout visitors for a date range. |