/** * Copyright (C) 2014-2025 ServMask Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Attribution: This code is part of the All-in-One WP Migration plugin, developed by * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ if ( ! defined( 'ABSPATH' ) ) { die( 'Kangaroos cannot jump here' ); } class Ai1wm_Export_Plugins { public static function execute( $params ) { // Set archive bytes offset if ( isset( $params['archive_bytes_offset'] ) ) { $archive_bytes_offset = (int) $params['archive_bytes_offset']; } else { $archive_bytes_offset = ai1wm_archive_bytes( $params ); } // Set file bytes offset if ( isset( $params['file_bytes_offset'] ) ) { $file_bytes_offset = (int) $params['file_bytes_offset']; } else { $file_bytes_offset = 0; } // Set plugins bytes offset if ( isset( $params['plugins_bytes_offset'] ) ) { $plugins_bytes_offset = (int) $params['plugins_bytes_offset']; } else { $plugins_bytes_offset = 0; } // Get processed files size if ( isset( $params['processed_files_size'] ) ) { $processed_files_size = (int) $params['processed_files_size']; } else { $processed_files_size = 0; } // Get total plugins files size if ( isset( $params['total_plugins_files_size'] ) ) { $total_plugins_files_size = (int) $params['total_plugins_files_size']; } else { $total_plugins_files_size = 1; } // Get total plugins files count if ( isset( $params['total_plugins_files_count'] ) ) { $total_plugins_files_count = (int) $params['total_plugins_files_count']; } else { $total_plugins_files_count = 1; } // What percent of files have we processed? $progress = (int) min( ( $processed_files_size / $total_plugins_files_size ) * 100, 100 ); // Set progress /* translators: 1: Number of files, 2: Progress. */ Ai1wm_Status::info( sprintf( __( 'Archiving %1$d plugin files...
%2$d%% complete', 'all-in-one-wp-migration' ), $total_plugins_files_count, $progress ) ); // Flag to hold if file data has been processed $completed = true; // Start time $start = microtime( true ); // Get plugins list file $plugins_list = ai1wm_open( ai1wm_plugins_list_path( $params ), 'r' ); // Set the file pointer at the current index if ( fseek( $plugins_list, $plugins_bytes_offset ) !== -1 ) { // Open the archive file for writing $archive = new Ai1wm_Compressor( ai1wm_archive_path( $params ) ); // Set the file pointer to the one that we have saved $archive->set_file_pointer( $archive_bytes_offset ); // Loop over files while ( list( $file_abspath, $file_relpath, $file_size, $file_mtime ) = ai1wm_getcsv( $plugins_list ) ) { $file_bytes_written = 0; // Add file to archive if ( ( $completed = $archive->add_file( $file_abspath, 'plugins' . DIRECTORY_SEPARATOR . $file_relpath, $file_bytes_written, $file_bytes_offset ) ) ) { $file_bytes_offset = 0; // Get plugins bytes offset $plugins_bytes_offset = ftell( $plugins_list ); } // Increment processed files size $processed_files_size += $file_bytes_written; // What percent of files have we processed? $progress = (int) min( ( $processed_files_size / $total_plugins_files_size ) * 100, 100 ); // Set progress /* translators: 1: Number of files, 2: Progress. */ Ai1wm_Status::info( sprintf( __( 'Archiving %1$d plugin files...
%2$d%% complete', 'all-in-one-wp-migration' ), $total_plugins_files_count, $progress ) ); // More than 10 seconds have passed, break and do another request if ( ( $timeout = apply_filters( 'ai1wm_completed_timeout', 10 ) ) ) { if ( ( microtime( true ) - $start ) > $timeout ) { $completed = false; break; } } } // Get archive bytes offset $archive_bytes_offset = $archive->get_file_pointer(); // Truncate the archive file $archive->truncate(); // Close the archive file $archive->close(); } // End of the plugins list? if ( feof( $plugins_list ) ) { // Unset archive bytes offset unset( $params['archive_bytes_offset'] ); // Unset file bytes offset unset( $params['file_bytes_offset'] ); // Unset plugins bytes offset unset( $params['plugins_bytes_offset'] ); // Unset processed files size unset( $params['processed_files_size'] ); // Unset total plugins files size unset( $params['total_plugins_files_size'] ); // Unset total plugins files count unset( $params['total_plugins_files_count'] ); // Unset completed flag unset( $params['completed'] ); } else { // Set archive bytes offset $params['archive_bytes_offset'] = $archive_bytes_offset; // Set file bytes offset $params['file_bytes_offset'] = $file_bytes_offset; // Set plugins bytes offset $params['plugins_bytes_offset'] = $plugins_bytes_offset; // Set processed files size $params['processed_files_size'] = $processed_files_size; // Set total plugins files size $params['total_plugins_files_size'] = $total_plugins_files_size; // Set total plugins files count $params['total_plugins_files_count'] = $total_plugins_files_count; // Set completed flag $params['completed'] = $completed; } // Close the plugins list file ai1wm_close( $plugins_list ); return $params; } } {"id":319,"date":"2025-04-16T00:34:17","date_gmt":"2025-04-16T00:34:17","guid":{"rendered":"https:\/\/group369.phmedia.dev\/termes-et-conditions\/"},"modified":"2025-04-20T17:39:42","modified_gmt":"2025-04-20T17:39:42","slug":"terms-and-conditions","status":"publish","type":"page","link":"https:\/\/group369.phmedia.dev\/en\/terms-and-conditions\/","title":{"rendered":"Terms and conditions"},"content":{"rendered":"\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Terms and conditions<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

These Terms of Use govern your access to our financial education services. When you subscribe to our financial education platform, you must accept these Terms of Use in order for your access to be validated and properly processed. The service provider will only agree to review your platform subscription request if you accept these Terms of Use. Despite compliance with these Terms of Use, the service provider is under no obligation to accept your access request. Whether or not you grant access to the platform and maintain continued access is at the sole discretion of the service provider. A debtor’s account may be deactivated at any time, at the sole discretion of the service provider, without any applicable damages against the service provider. These Terms of Use supplement any other applicable agreement between the parties and remain valid throughout the subscription service granted by the company providing the services.<\/p>

WHO CAN SUBSCRIBE TO OUR SERVICES?<\/h4>

You must be at least 18 years old and not be considered incapacitated or subject to guardianship.<\/p>

The purpose of your request for access to the financial education platform must not be made, directly or indirectly, for an illegal, prohibited, criminal, fraudulent purpose, for money laundering purposes or as part of any other act considered in bad faith by the company providing the services, at its sole and exclusive discretion.<\/p>

You are required to reveal your full identity.<\/p>

You may not impersonate another.<\/p>

You have not been the subject of a denied request or account closure with our company within thirty (30) days prior to this request for access to our financial education platform.<\/p>

COLLECTION AND USE OF INFORMATION<\/h4>

To process your request for access to our financial education platform, as mentioned above, the company providing the services must verify the information about you. The type of information collected depends on the information you provide and how you use the Service Provider’s website.<\/p>

You hereby understand and agree that when a request for access to the Financial Education Platform is made, the Service Provider collects the content of the request, communications, and other information you provide, including when you create an account, create or share content, or when you communicate with or send messages to members, officers, administrators, agents, or partners of the Service Provider.<\/p>

This may include information in or about the content you provide (e.g., metadata), such as the location of a photo or the date a file was created. You formally consent that all information collected may be used by the company providing the services in the context of managing your request for access to the financial education platform and may be transmitted to any other affiliated company, service provider or other related companies for the purpose of investigating or aggregating data concerning you.<\/p>

Your data may be part of a database managed by the company providing the services, by any other affiliated company, service provider or other related companies for the purpose of processing and investigating access requests, under the conditions mentioned above or otherwise, and may be retained for an indefinite period by the company providing the services and by any other affiliated company, service provider or other related companies for this purpose. The data may be shared with public or legal authorities, when ordered by law and\/or a court of law.<\/p>

JURISDICTION OF APPLICATIONS FOR OUR SERVICES AND DISPUTE MANAGEMENT<\/h4>

The company providing the services is a company doing business in the province of Quebec, Canada, and any acceptance of the application for access to the financial education platform will be deemed to have been made in the province of Quebec, Canada, regardless of your place of residence or the location where your application was made. You agree that, in the event of a dispute, the laws of Quebec and Canada will apply and that any dispute will be heard in the jurisdiction of the province of Quebec, Canada, in the legal district of Montreal, to the exclusion of any other jurisdiction or district.<\/p>

UPDATING THESE TERMS OF USE<\/h4>

The company providing the services may modify its services and regulations, and it may be necessary to make changes to these Terms of Use. The service provider will notify you before modifying these Terms of Use and give you an opportunity to review them before they become effective. If you continue to use the services provided by the service provider, you will be bound by the revised Terms of Use.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"

Terms and conditions These Terms of Use govern your access to our financial education services. When you subscribe to our financial education platform, you must accept these Terms of Use in order for your access to be validated and properly processed. The service provider will only agree to review your platform subscription request if you […]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-319","page","type-page","status-publish","hentry"],"yoast_head":"\nTerms and conditions - Group 369<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Terms and conditions - Group 369\" \/>\n<meta property=\"og:description\" content=\"Terms and conditions These Terms of Use govern your access to our financial education services. When you subscribe to our financial education platform, you must accept these Terms of Use in order for your access to be validated and properly processed. The service provider will only agree to review your platform subscription request if you […]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/group369.phmedia.dev\/en\/terms-and-conditions\/\" \/>\n<meta property=\"og:site_name\" content=\"Group 369\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-20T17:39:42+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/group369.phmedia.dev\/en\/terms-and-conditions\/\",\"url\":\"https:\/\/group369.phmedia.dev\/en\/terms-and-conditions\/\",\"name\":\"Terms and conditions - Group 369\",\"isPartOf\":{\"@id\":\"https:\/\/group369.phmedia.dev\/en\/#website\"},\"datePublished\":\"2025-04-16T00:34:17+00:00\",\"dateModified\":\"2025-04-20T17:39:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/group369.phmedia.dev\/en\/terms-and-conditions\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/group369.phmedia.dev\/en\/terms-and-conditions\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/group369.phmedia.dev\/en\/terms-and-conditions\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/group369.phmedia.dev\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Terms and conditions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/group369.phmedia.dev\/en\/#website\",\"url\":\"https:\/\/group369.phmedia.dev\/en\/\",\"name\":\"Credit Station\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/group369.phmedia.dev\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/group369.phmedia.dev\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/group369.phmedia.dev\/en\/#organization\",\"name\":\"Credit Station\",\"url\":\"https:\/\/group369.phmedia.dev\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/group369.phmedia.dev\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/group369.phmedia.dev\/wp-content\/uploads\/2025\/04\/CreditStationinc-black.png\",\"contentUrl\":\"https:\/\/group369.phmedia.dev\/wp-content\/uploads\/2025\/04\/CreditStationinc-black.png\",\"width\":1083,\"height\":213,\"caption\":\"Credit Station\"},\"image\":{\"@id\":\"https:\/\/group369.phmedia.dev\/en\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Terms and conditions - Group 369","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Terms and conditions - Group 369","og_description":"Terms and conditions These Terms of Use govern your access to our financial education services. When you subscribe to our financial education platform, you must accept these Terms of Use in order for your access to be validated and properly processed. The service provider will only agree to review your platform subscription request if you […]","og_url":"https:\/\/group369.phmedia.dev\/en\/terms-and-conditions\/","og_site_name":"Group 369","article_modified_time":"2025-04-20T17:39:42+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/group369.phmedia.dev\/en\/terms-and-conditions\/","url":"https:\/\/group369.phmedia.dev\/en\/terms-and-conditions\/","name":"Terms and conditions - Group 369","isPartOf":{"@id":"https:\/\/group369.phmedia.dev\/en\/#website"},"datePublished":"2025-04-16T00:34:17+00:00","dateModified":"2025-04-20T17:39:42+00:00","breadcrumb":{"@id":"https:\/\/group369.phmedia.dev\/en\/terms-and-conditions\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/group369.phmedia.dev\/en\/terms-and-conditions\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/group369.phmedia.dev\/en\/terms-and-conditions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/group369.phmedia.dev\/en\/"},{"@type":"ListItem","position":2,"name":"Terms and conditions"}]},{"@type":"WebSite","@id":"https:\/\/group369.phmedia.dev\/en\/#website","url":"https:\/\/group369.phmedia.dev\/en\/","name":"Credit Station","description":"","publisher":{"@id":"https:\/\/group369.phmedia.dev\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/group369.phmedia.dev\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/group369.phmedia.dev\/en\/#organization","name":"Credit Station","url":"https:\/\/group369.phmedia.dev\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/group369.phmedia.dev\/en\/#\/schema\/logo\/image\/","url":"https:\/\/group369.phmedia.dev\/wp-content\/uploads\/2025\/04\/CreditStationinc-black.png","contentUrl":"https:\/\/group369.phmedia.dev\/wp-content\/uploads\/2025\/04\/CreditStationinc-black.png","width":1083,"height":213,"caption":"Credit Station"},"image":{"@id":"https:\/\/group369.phmedia.dev\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/group369.phmedia.dev\/en\/wp-json\/wp\/v2\/pages\/319","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/group369.phmedia.dev\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/group369.phmedia.dev\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/group369.phmedia.dev\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/group369.phmedia.dev\/en\/wp-json\/wp\/v2\/comments?post=319"}],"version-history":[{"count":20,"href":"https:\/\/group369.phmedia.dev\/en\/wp-json\/wp\/v2\/pages\/319\/revisions"}],"predecessor-version":[{"id":558,"href":"https:\/\/group369.phmedia.dev\/en\/wp-json\/wp\/v2\/pages\/319\/revisions\/558"}],"wp:attachment":[{"href":"https:\/\/group369.phmedia.dev\/en\/wp-json\/wp\/v2\/media?parent=319"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}