private function missing_php_extensions()
 {
     $extensions = array();
     if (ini_get('allow_url_fopen') !== '1') {
         $extensions['allow_url_fopen'] = array('type' => 'setting', 'type_description' => __('PHP Setting', 'wpml-translation-management'), 'value' => '1');
     }
     if (!extension_loaded('openssl')) {
         $extensions['openssl'] = array('type' => 'extension', 'type_description' => __('PHP Extension', 'wpml-translation-management'));
     }
     if (class_exists('ICL_AdminNotifier') && (!defined('ICL_HIDE_TRANSLATION_SERVICES') || !ICL_HIDE_TRANSLATION_SERVICES)) {
         $wpml_wp_api_check = new WPML_WP_API();
         if (count($extensions) > 0 && $wpml_wp_api_check->is_tm_page()) {
             $message = '';
             $message .= '<p>';
             $message .= __('WPML Translation Management requires the following PHP extensions and settings:', 'wpml-translation-management');
             $message .= '</p>';
             $message .= '<ul>';
             foreach ($extensions as $id => $data) {
                 $message .= '<li>';
                 if ('setting' === $data['type']) {
                     $message .= $data['type_description'] . ': <code>' . $id . '=' . $data['value'] . '</code>';
                 }
                 if ('extension' === $data['type']) {
                     $message .= $data['type_description'] . ': <strong>' . $id . '</strong>';
                 }
                 $message .= '</li>';
             }
             $message .= '</ul>';
             $args = array('id' => 'wpml-tm-missing-extensions', 'group' => 'wpml-tm-requirements', 'msg' => $message, 'type' => 'error', 'admin_notice' => true, 'hide' => true);
             ICL_AdminNotifier::add_message($args);
         } else {
             ICL_AdminNotifier::remove_message_group('wpml-tm-requirements');
         }
     }
 }