Skip to content

Instantly share code, notes, and snippets.

@UserMetaPro
Created October 2, 2014 21:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save UserMetaPro/c83e458d9f71841fce5c to your computer and use it in GitHub Desktop.
Save UserMetaPro/c83e458d9f71841fce5c to your computer and use it in GitHub Desktop.
Generate Wpml Config
function generateWpmlConfig() {
global $userMeta;
if ( ! $userMeta->isAdmin() ) return;
if ( ! is_writable( $userMeta->pluginPath ) ) return;
$writer = new XMLWriter();
$writer->openURI( $userMeta->pluginPath . '/wpml-config.xml');
$writer->setIndent(4);
$writer->startElement( 'wpml-config' );
$writer->startElement( 'admin-texts' );
/**
* user_meta_fields
*/
$fields = $userMeta->getData( 'fields' );
if ( is_array( $fields ) ) {
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', 'user_meta_fields' );
foreach ( $fields as $id => $field ) {
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', $id );
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', 'field_title' );
$writer->endElement();
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', 'description' );
$writer->endElement();
$writer->endElement();
}
$writer->endElement();
}
/**
* user_meta_forms
*/
$forms = $userMeta->getData( 'forms' );
if ( is_array( $forms ) ) {
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', 'user_meta_forms' );
foreach ( $forms as $id => $form ) {
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', $id );
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', 'button_title' );
$writer->endElement();
$writer->endElement();
}
$writer->endElement();
}
/**
* user_meta_emails
*/
$emails = $userMeta->getData( 'emails' );
if ( is_array( $emails ) ) {
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', 'user_meta_emails' );
foreach ( $emails as $key1 => $val1 ) {
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', $key1 );
if ( is_array( $val1 ) ) {
foreach ( $val1 as $ke2 => $val2 ) {
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', $ke2 );
if ( is_array( $val2 ) ) {
foreach ( $val2 as $key3 => $val3 ) {
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', $key3 );
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', 'subject' );
$writer->endElement();
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', 'body' );
$writer->endElement();
$writer->endElement();
}
}
$writer->endElement();
}
}
$writer->endElement();
}
$writer->endElement();
}
/**
* user_meta_settings
*/
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', 'user_meta_settings' );
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', 'login' );
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', 'loggedin_profile' );
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', '*' );
$writer->endElement();
$writer->endElement();
$writer->endElement();
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', 'text' );
$writer->startElement( 'key' );
$writer->writeAttribute( 'name', '*' );
$writer->endElement();
$writer->endElement();
$writer->endElement();
$writer->endElement();
$writer->endElement();
$writer->flush();
echo 'Success!';
die();
}
add_action( 'wp_ajax_generate_wpml_config', 'generateWpmlConfig' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment