final class PW_User_Geo {
- Declares a class named
PW_User_Geo.
- The keyword
final means this class cannot be extended — no other class can inherit from it.
- 🔒 This is often used in WordPress plugins to prevent developers from accidentally overriding core functionality.
const TRANSIENT_PREFIX = 'pw_user_geo_';
const VERSION = '1.1.1';
- These are class constants (like variables that can’t change).
TRANSIENT_PREFIX → used as a prefix when saving data to WordPress transients (temporary cache stored in the database).
- Example:
'pw_user_geo_' . md5($ip) creates a unique key for caching each IP’s location lookup.
VERSION → keeps track of the plugin’s version, useful for debugging, migrations, or cache busting.
private static $instance = null;
- This creates a static property to hold the single instance of this class.
- Used for the Singleton pattern (only one copy of the class exists).
public static function instance() {
if ( null === self::$instance ) self::$instance = new self();
return self::$instance;
}
- This method ensures that:
- If no instance of
PW_User_Geo exists yet (self::$instance is null), it creates one (new self()).
- Returns the existing instance.
- So every time you call
PW_User_Geo::instance(), you get the same object, not a new one.