Revert "Added a database option to allow for selecting different MaxMind databases"
This reverts commit d32c470cea
.
This commit is contained in:
parent
d32c470cea
commit
7a5083e47b
|
@ -14,6 +14,12 @@ defined( 'ABSPATH' ) || exit;
|
||||||
* @since 3.9.0
|
* @since 3.9.0
|
||||||
*/
|
*/
|
||||||
class WC_Integration_MaxMind_Database_Service {
|
class WC_Integration_MaxMind_Database_Service {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The name of the MaxMind database to utilize.
|
||||||
|
*/
|
||||||
|
const DATABASE = 'GeoLite2-Country';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The extension for the MaxMind database.
|
* The extension for the MaxMind database.
|
||||||
*/
|
*/
|
||||||
|
@ -26,31 +32,13 @@ class WC_Integration_MaxMind_Database_Service {
|
||||||
*/
|
*/
|
||||||
private $database_prefix;
|
private $database_prefix;
|
||||||
|
|
||||||
/**
|
|
||||||
* The MaxMind database to download.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $database;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* WC_Integration_MaxMind_Database_Service constructor.
|
* WC_Integration_MaxMind_Database_Service constructor.
|
||||||
*
|
*
|
||||||
* @param string|null $database_prefix A prefix for the MaxMind database filename.
|
* @param string|null $database_prefix A prefix for the MaxMind database filename.
|
||||||
* @param string $database The MaxMind database to download.
|
|
||||||
*/
|
*/
|
||||||
public function __construct( $database_prefix, $database ) {
|
public function __construct( $database_prefix ) {
|
||||||
$this->database_prefix = $database_prefix;
|
$this->database_prefix = $database_prefix;
|
||||||
$this->database = $database;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Changes the MaxMind database to download.
|
|
||||||
*
|
|
||||||
* @param string $database The new MaxMind database to download.
|
|
||||||
*/
|
|
||||||
public function set_database( $database ) {
|
|
||||||
$this->database = $database;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -65,7 +53,7 @@ class WC_Integration_MaxMind_Database_Service {
|
||||||
if ( ! empty( $this->database_prefix ) ) {
|
if ( ! empty( $this->database_prefix ) ) {
|
||||||
$database_path .= $this->database_prefix . '-';
|
$database_path .= $this->database_prefix . '-';
|
||||||
}
|
}
|
||||||
$database_path .= 'MaxMind-Geolocation-Database' . self::DATABASE_EXTENSION;
|
$database_path .= self::DATABASE . self::DATABASE_EXTENSION;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filter the geolocation database storage path.
|
* Filter the geolocation database storage path.
|
||||||
|
@ -99,7 +87,7 @@ class WC_Integration_MaxMind_Database_Service {
|
||||||
public function download_database( $license_key ) {
|
public function download_database( $license_key ) {
|
||||||
$download_uri = add_query_arg(
|
$download_uri = add_query_arg(
|
||||||
array(
|
array(
|
||||||
'edition_id' => $this->database,
|
'edition_id' => self::DATABASE,
|
||||||
'license_key' => wc_clean( $license_key ),
|
'license_key' => wc_clean( $license_key ),
|
||||||
'suffix' => 'tar.gz',
|
'suffix' => 'tar.gz',
|
||||||
),
|
),
|
||||||
|
@ -130,11 +118,11 @@ class WC_Integration_MaxMind_Database_Service {
|
||||||
try {
|
try {
|
||||||
$file = new PharData( $tmp_archive_path );
|
$file = new PharData( $tmp_archive_path );
|
||||||
|
|
||||||
$tmp_database_path = trailingslashit( dirname( $tmp_archive_path ) ) . trailingslashit( $file->current()->getFilename() ) . $this->database . self::DATABASE_EXTENSION;
|
$tmp_database_path = trailingslashit( dirname( $tmp_archive_path ) ) . trailingslashit( $file->current()->getFilename() ) . self::DATABASE . self::DATABASE_EXTENSION;
|
||||||
|
|
||||||
$file->extractTo(
|
$file->extractTo(
|
||||||
dirname( $tmp_archive_path ),
|
dirname( $tmp_archive_path ),
|
||||||
trailingslashit( $file->current()->getFilename() ) . $this->database . self::DATABASE_EXTENSION,
|
trailingslashit( $file->current()->getFilename() ) . self::DATABASE . self::DATABASE_EXTENSION,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
} catch ( Exception $exception ) {
|
} catch ( Exception $exception ) {
|
||||||
|
|
|
@ -40,10 +40,7 @@ class WC_Integration_MaxMind_Geolocation extends WC_Integration {
|
||||||
*/
|
*/
|
||||||
$this->database_service = apply_filters( 'woocommerce_maxmind_geolocation_database_service', null );
|
$this->database_service = apply_filters( 'woocommerce_maxmind_geolocation_database_service', null );
|
||||||
if ( null === $this->database_service ) {
|
if ( null === $this->database_service ) {
|
||||||
$this->database_service = new WC_Integration_MaxMind_Database_Service(
|
$this->database_service = new WC_Integration_MaxMind_Database_Service( $this->get_database_prefix() );
|
||||||
$this->get_database_prefix(),
|
|
||||||
$this->get_option( 'database' )
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->init_form_fields();
|
$this->init_form_fields();
|
||||||
|
@ -83,23 +80,11 @@ class WC_Integration_MaxMind_Geolocation extends WC_Integration {
|
||||||
*/
|
*/
|
||||||
public function init_form_fields() {
|
public function init_form_fields() {
|
||||||
$this->form_fields = array(
|
$this->form_fields = array(
|
||||||
// Note: The database field MUST be first, as the license_key validation relies on the value of it!
|
|
||||||
'database' => array(
|
|
||||||
'title' => __( 'Database', 'woocommerce' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'description' => __( 'The database chosen decides the precision of the geolocation search. You should note that higher precision database are larger in size.', 'woocommerce' ),
|
|
||||||
'options' => array(
|
|
||||||
'GeoLite2-Country' => __( 'GeoLite2 - Country', 'woocommerce' ),
|
|
||||||
'GeoLite2-City' => __( 'GeoLite2 - City', 'woocommerce' ),
|
|
||||||
),
|
|
||||||
'desc_tip' => false,
|
|
||||||
'default' => 'GeoLite2-Country',
|
|
||||||
),
|
|
||||||
'license_key' => array(
|
'license_key' => array(
|
||||||
'title' => __( 'MaxMind License Key', 'woocommerce' ),
|
'title' => __( 'MaxMind License Key', 'woocommerce' ),
|
||||||
'type' => 'password',
|
'type' => 'password',
|
||||||
'description' => sprintf(
|
'description' => sprintf(
|
||||||
/* translators: %1$s: Documentation URL */
|
/* translators: %1$s: Documentation URL */
|
||||||
__(
|
__(
|
||||||
'The key that will be used when dealing with MaxMind Geolocation services. You can read how to generate one in <a href="%1$s">MaxMind\'s License Key Documentation</a>.',
|
'The key that will be used when dealing with MaxMind Geolocation services. You can read how to generate one in <a href="%1$s">MaxMind\'s License Key Documentation</a>.',
|
||||||
'woocommerce'
|
'woocommerce'
|
||||||
|
|
|
@ -26,10 +26,10 @@ class WC_Tests_MaxMind_Database extends WC_Unit_Test_Case {
|
||||||
* @expectedDeprecated woocommerce_geolocation_local_database_path
|
* @expectedDeprecated woocommerce_geolocation_local_database_path
|
||||||
*/
|
*/
|
||||||
public function test_database_path_filters() {
|
public function test_database_path_filters() {
|
||||||
$database_service = new WC_Integration_MaxMind_Database_Service( '', '' );
|
$database_service = new WC_Integration_MaxMind_Database_Service( '' );
|
||||||
|
|
||||||
$path = $database_service->get_database_path();
|
$path = $database_service->get_database_path();
|
||||||
$this->assertEquals( WP_CONTENT_DIR . '/uploads/woocommerce_uploads/MaxMind-Geolocation-Database' . WC_Integration_MaxMind_Database_Service::DATABASE_EXTENSION, $path );
|
$this->assertEquals( WP_CONTENT_DIR . '/uploads/woocommerce_uploads/' . WC_Integration_MaxMind_Database_Service::DATABASE . WC_Integration_MaxMind_Database_Service::DATABASE_EXTENSION, $path );
|
||||||
|
|
||||||
add_filter( 'woocommerce_geolocation_local_database_path', array( $this, 'filter_database_path_deprecated' ), 1, 2 );
|
add_filter( 'woocommerce_geolocation_local_database_path', array( $this, 'filter_database_path_deprecated' ), 1, 2 );
|
||||||
$path = $database_service->get_database_path();
|
$path = $database_service->get_database_path();
|
||||||
|
@ -44,17 +44,17 @@ class WC_Tests_MaxMind_Database extends WC_Unit_Test_Case {
|
||||||
$this->assertEquals( '/filter', $path );
|
$this->assertEquals( '/filter', $path );
|
||||||
|
|
||||||
// Now perform any tests with a database file prefix.
|
// Now perform any tests with a database file prefix.
|
||||||
$database_service = new WC_Integration_MaxMind_Database_Service( 'testing', '' );
|
$database_service = new WC_Integration_MaxMind_Database_Service( 'testing' );
|
||||||
|
|
||||||
$path = $database_service->get_database_path();
|
$path = $database_service->get_database_path();
|
||||||
$this->assertEquals( WP_CONTENT_DIR . '/uploads/woocommerce_uploads/testing-MaxMind-Geolocation-Database' . WC_Integration_MaxMind_Database_Service::DATABASE_EXTENSION, $path );
|
$this->assertEquals( WP_CONTENT_DIR . '/uploads/woocommerce_uploads/testing-' . WC_Integration_MaxMind_Database_Service::DATABASE . WC_Integration_MaxMind_Database_Service::DATABASE_EXTENSION, $path );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests that the database download works as expected.
|
* Tests that the database download works as expected.
|
||||||
*/
|
*/
|
||||||
public function test_download_database_works() {
|
public function test_download_database_works() {
|
||||||
$database_service = new WC_Integration_MaxMind_Database_Service( '', 'GeoLite2-Country' );
|
$database_service = new WC_Integration_MaxMind_Database_Service( '' );
|
||||||
$expected_database = '/tmp/GeoLite2-Country_20200100/GeoLite2-Country.mmdb';
|
$expected_database = '/tmp/GeoLite2-Country_20200100/GeoLite2-Country.mmdb';
|
||||||
|
|
||||||
$result = $database_service->download_database( 'testing_license' );
|
$result = $database_service->download_database( 'testing_license' );
|
||||||
|
@ -70,7 +70,7 @@ class WC_Tests_MaxMind_Database extends WC_Unit_Test_Case {
|
||||||
* Tests the that database download wraps the download and extraction errors.
|
* Tests the that database download wraps the download and extraction errors.
|
||||||
*/
|
*/
|
||||||
public function test_download_database_wraps_errors() {
|
public function test_download_database_wraps_errors() {
|
||||||
$database_service = new WC_Integration_MaxMind_Database_Service( '', 'GeoLite2-Country' );
|
$database_service = new WC_Integration_MaxMind_Database_Service( '' );
|
||||||
|
|
||||||
$result = $database_service->download_database( 'invalid_license' );
|
$result = $database_service->download_database( 'invalid_license' );
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ class WC_Tests_MaxMind_Integration extends WC_Unit_Test_Case {
|
||||||
$this->database_service->expects( $this->once() )
|
$this->database_service->expects( $this->once() )
|
||||||
->method( 'download_database' )
|
->method( 'download_database' )
|
||||||
->with( 'test_license' )
|
->with( 'test_license' )
|
||||||
->willReturn( '/tmp/MaxMind-Geolocation-Database.' . WC_Integration_MaxMind_Database_Service::DATABASE_EXTENSION );
|
->willReturn( '/tmp/' . WC_Integration_MaxMind_Database_Service::DATABASE . '.' . WC_Integration_MaxMind_Database_Service::DATABASE_EXTENSION );
|
||||||
|
|
||||||
$integration = new WC_Integration_MaxMind_Geolocation();
|
$integration = new WC_Integration_MaxMind_Geolocation();
|
||||||
$integration->update_option( 'license_key', 'test_license' );
|
$integration->update_option( 'license_key', 'test_license' );
|
||||||
|
|
Loading…
Reference in New Issue