PluginProbe
Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) / 1.8.13
Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) v1.8.13
1.8.13.1 1.8.13 1.8.12.3 1.8.12.2 1.8.12.1 1.8.12 1.8.11.3 1.8.11.2 1.8.11.1 1.8.11 1.6.6 1.6.60 1.6.7 1.6.8 1.6.9 1.7.0 1.7.0.1 1.7.0.11 1.7.0.12 1.7.0.14 1.7.0.2 1.7.0.3 1.7.0.5 1.7.0.6 1.7.0.7 All 212 releases
← All changes | includes/admin/plugins/class-charitable-admin-plugins-third-party.php +36 -0 1.8.12.3 → 1.8.13 View file →
@@ -404,8 +404,44 @@
404 404 endif;
405 405 delete_transient( 'pushengage_activation_redirect' );
406 406 }
407 407
408 + /*
409 + * Record that Charitable drove this WPVibe install, for cross-brand
410 + * attribution. The option pair is UNPREFIXED on purpose: whichever
411 + * Awesome Motive plugin installs the promoted plugin writes its own
412 + * name into `<plugin>_source`, and each brand's own check-in claims
413 + * only the installs whose source names IT. The key is `wpvibe_source`,
414 + * the plugin's published `vibe-ai` slug notwithstanding, because that
415 + * is the key every brand agrees to read - WPForms uses the identical
416 + * pair for the same plugin. Guarded so a value another AM plugin
417 + * already wrote is never overwritten: the option records who FIRST
418 + * drove the install. This method is reached only through Charitable's
419 + * own AJAX installer, so the attribution is never claimed for an
420 + * activation the user made from the Plugins screen directly.
421 + *
422 + * Written as a fixed 'Charitable Lite', not a charitable_is_pro()
423 + * ternary: this file ships in the Lite plugin, so the driver is
424 + * always Charitable Lite. Pro's own copy of this method (Charitable
425 + * Pro is a separate, standalone plugin - it never runs alongside
426 + * Lite) writes 'Charitable Pro'. Both strings contain 'Charitable',
427 + * which is all a receiving check-in matches on.
428 + *
429 + * Autoload explicitly OFF (fix round 2, ITEM 2): Pro's own copy of
430 + * this method omits the third argument, which defaults an option
431 + * to autoloaded. Both of these are read only from this one admin
432 + * screen and from a weekly check-in - never on the front end, never
433 + * on most admin requests - so there is no reason to load either of
434 + * them into memory on every request the way autoloaded options are.
435 + * Deliberately NOT matching Pro here.
436 + *
437 + * @since 1.8.13
438 + */
439 + if ( strstr( $basename, 'vibe-ai' ) && ! get_option( 'wpvibe_source' ) ) {
440 + update_option( 'wpvibe_source', 'Charitable Lite', false );
441 + update_option( 'wpvibe_date', time(), false );
442 + }
443 +
408 444 if ( is_wp_error( $success ) ) {
409 445 wp_send_json_error(
410 446 array(
411 447 'error' => $success->get_error_message(),