• Hi Falang Team,

    I am struggling with wrapping up options in array and avoiding error.
    Below are 4 option already registred as icl_register_string.

    'options' => array(
    			'/gab.',
                            '/m.',
                            '/iepak.',
                            '/kompl.'

    Please advise on wrapping them up correctly. I have tried to do like this, but it cause syntax error:

    'options' => array(
    			falang__( '/gab.', 'Custom Strings' ),
                            falang__( '/m.', 'Custom Strings' ),
                            falang__( '/iepak.', 'Custom Strings' ),
                            falang__( '/kompl.', 'Custom Strings' )

    Thank you!

Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Author sbouey

    (@sbouey)

    Can you give me more info to test what you are doing ?

    Stéphane

    Thread Starter makc57

    (@makc57)

    Dear Stéphane,

    I have created custom meta field for WooCommerce product with some options to select:
    ‘/gab.’
    ‘/m.’
    ‘/iepak.’
    ‘/kompl.’

    below is is Code Snippet I used for this. Now I want them to be translated. Please advise on translating those strings

    // Meta Box Class: ProductUnitOfMeasureMetaBox
    // Get the field value: $metavalue = get_post_meta( $post_id, $field_id, true );
    class ProductUnitOfMeasureMetaBox{
    
    	private $screen = array(
    		'post',
                    'product',        
    	);
    	private $meta_fields = array(
                    array(
                        'label' => 'Unit of Measure',
                        'id' => 'unit_of_measure',
                        'type' => 'select',
                        'options' => array(
    						'gab.',
                            'm.',
                            'iepak.',
                            'kompl.',
    								
                        )
                    )
    		
    	);
    		
    	public function __construct() {
    		add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
    		add_action( 'save_post', array( $this, 'save_fields' ) );
    	}
    
    	public function add_meta_boxes() {
    		foreach ( $this->screen as $single_screen ) {
    			add_meta_box(
    				'ProductUnitOfMeasure',
    				__( 'ProductUnitOfMeasure', '' ),
    				array( $this, 'meta_box_callback' ),
    				$single_screen,
    				'normal',
    				'default'
    			);
    		}
    	}
    
    	public function meta_box_callback( $post ) {
    		wp_nonce_field( 'ProductUnitOfMeasure_data', 'ProductUnitOfMeasure_nonce' );
    		$this->field_generator( $post );
    	}
    	public function field_generator( $post ) {
    		$output = '';
    		foreach ( $this->meta_fields as $meta_field ) {
    			$label = '<label for="' . $meta_field['id'] . '">' . $meta_field['label'] . '</label>';
    			$meta_value = get_post_meta( $post->ID, $meta_field['id'], true );
    			if ( empty( $meta_value ) ) {
    				if ( isset( $meta_field['default'] ) ) {
    					$meta_value = $meta_field['default'];
    				}
    			}
    			switch ( $meta_field['type'] ) {
                                    case 'select':
                                        $input = sprintf(
                                            '<select id="%s" name="%s">',
                                            $meta_field['id'],
                                            $meta_field['id']
                                        );
                                        foreach ( $meta_field['options'] as $key => $value ) {
                                            $meta_field_value = !is_numeric( $key ) ? $key : $value;
                                            $input .= sprintf(
                                                '<option %s value="%s">%s</option>',
                                                $meta_value === $meta_field_value ? 'selected' : '',
                                                $meta_field_value,
                                                $value
                                            );
                                        }
                                        $input .= '</select>';
                                        break;
    
    				default:
                                        $input = sprintf(
                                            '<input %s id="%s" name="%s" type="%s" value="%s">',
                                            $meta_field['type'] !== 'color' ? 'style="width: 100%"' : '',
                                            $meta_field['id'],
                                            $meta_field['id'],
                                            $meta_field['type'],
                                            $meta_value
                                        );
    			}
    			$output .= $this->format_rows( $label, $input );
    		}
    		echo '<table class="form-table"><tbody>' . $output . '</tbody></table>';
    	}
    
    	public function format_rows( $label, $input ) {
    		return '<tr><th>'.$label.'</th><td>'.$input.'</td></tr>';
    	}
    
    	public function save_fields( $post_id ) {
    		if ( ! isset( $_POST['ProductUnitOfMeasure_nonce'] ) )
    			return $post_id;
    		$nonce = $_POST['ProductUnitOfMeasure_nonce'];
    		if ( !wp_verify_nonce( $nonce, 'ProductUnitOfMeasure_data' ) )
    			return $post_id;
    		if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
    			return $post_id;
    		foreach ( $this->meta_fields as $meta_field ) {
    			if ( isset( $_POST[ $meta_field['id'] ] ) ) {
    				switch ( $meta_field['type'] ) {
    					case 'email':
    						$_POST[ $meta_field['id'] ] = sanitize_email( $_POST[ $meta_field['id'] ] );
    						break;
    					case 'text':
    						$_POST[ $meta_field['id'] ] = sanitize_text_field( $_POST[ $meta_field['id'] ] );
    						break;
    				}
    				update_post_meta( $post_id, $meta_field['id'], $_POST[ $meta_field['id'] ] );
    			} else if ( $meta_field['type'] === 'checkbox' ) {
    				update_post_meta( $post_id, $meta_field['id'], '0' );
    			}
    		}
    	}
    }
    
    if (class_exists('ProductUnitOfMeasureMetabox')) {
    	new ProductUnitOfMeasureMetabox;
    };

    Kind regards,
    Max

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘How to wrap options in array with “falang__”?’ is closed to new replies.