Advertisement
fauzanjeg

JKIT || Add JKIT Widgets to WPML Translate

Jun 6th, 2022 (edited)
1,364
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 10.71 KB | None | 0 0
  1. /** Add JKIT Widgets to WPML Translate */
  2. function add_jkit_widgets_to_translate( $widgets ) {
  3.     /** JKIT - Icon Box */
  4.     $widgets['jkit_icon_box'] = array(
  5.         'conditions' => array( 'widgetType' => 'jkit_icon_box' ),
  6.         'fields'     => array(
  7.             array(
  8.                 'field'       => 'sg_icon_text',
  9.                 'type'        => __( 'JKIT Icon Box: Icon Box: Title', 'jeg-elementor-kit' ),
  10.                 'editor_type' => 'LINE',
  11.             ),
  12.             array(
  13.                 'field'       => 'sg_icon_description',
  14.                 'type'        => __( 'JKIT Icon Box: Icon Box: Description', 'jeg-elementor-kit' ),
  15.                 'editor_type' => 'AREA',
  16.             ),
  17.             array(
  18.                 'field'       => 'sg_readmore_button_label',
  19.                 'type'        => __( 'JKIT Icon Box: Read More: Button Label', 'jeg-elementor-kit' ),
  20.                 'editor_type' => 'LINE',
  21.             ),
  22.             array(
  23.                 'field'       => 'sg_badge_text',
  24.                 'type'        => __( 'JKIT Icon Box: Badge: Text', 'jeg-elementor-kit' ),
  25.                 'editor_type' => 'LINE',
  26.             ),
  27.         ),
  28.     );
  29.  
  30.     /** JKIT - Accordion Widget */
  31.     $widgets['jkit_accordion'] = array(
  32.         'conditions'        => array( 'widgetType' => 'jkit_accordion' ),
  33.         'fields'            => array(),
  34.         'integration-class' => 'WPML_JKIT_Accordion_Custom',
  35.     );
  36.  
  37.     /** JKIT - Testimonials Widget */
  38.     $widgets['jkit_testimonials'] = array(
  39.         'conditions'        => array( 'widgetType' => 'jkit_testimonials' ),
  40.         'fields'            => array(),
  41.         'integration-class' => 'WPML_JKIT_Testimonials_Custom',
  42.     );
  43.  
  44.     /** JKIT - Heading Widget */
  45.     $widgets['jkit_heading'] = array(
  46.         'conditions' => array( 'widgetType' => 'jkit_heading' ),
  47.         'fields'     => array(
  48.             array(
  49.                 'field'       => 'sg_title_before',
  50.                 'type'        => __( 'JKIT Heading: Title: Before Focused Title', 'jeg-elementor-kit' ),
  51.                 'editor_type' => 'LINE',
  52.             ),
  53.             array(
  54.                 'field'       => 'sg_title_focused',
  55.                 'type'        => __( 'JKIT Heading: Title: Focused Title', 'jeg-elementor-kit' ),
  56.                 'editor_type' => 'LINE',
  57.             ),
  58.             array(
  59.                 'field'       => 'sg_title_after',
  60.                 'type'        => __( 'JKIT Heading: Title: After Focused Title', 'jeg-elementor-kit' ),
  61.                 'editor_type' => 'LINE',
  62.             ),
  63.             array(
  64.                 'field'       => 'sg_subtitle_heading',
  65.                 'type'        => __( 'JKIT Heading: Subtitle: Heading Sub Title', 'jeg-elementor-kit' ),
  66.                 'editor_type' => 'LINE',
  67.             ),
  68.             array(
  69.                 'field'       => 'sg_description',
  70.                 'type'        => __( 'JKIT Heading: Description: Heading Description', 'jeg-elementor-kit' ),
  71.                 'editor_type' => 'VISUAL',
  72.             ),
  73.             array(
  74.                 'field'       => 'sg_shadow_content',
  75.                 'type'        => __( 'JKIT Heading: Shadow Text: Content', 'jeg-elementor-kit' ),
  76.                 'editor_type' => 'LINE',
  77.             ),
  78.         ),
  79.     );
  80.  
  81.     /** JKIT - Image Box Widget */
  82.     $widgets['jkit_image_box'] = array(
  83.         'conditions' => array( 'widgetType' => 'jkit_image_box' ),
  84.         'fields'     => array(
  85.             array(
  86.                 'field'       => 'sg_image_link',
  87.                 'type'        => __( 'JKIT Image Box: Image: Link', 'jeg-elementor-kit' ),
  88.                 'editor_type' => 'LINE',
  89.             ),
  90.             array(
  91.                 'field'       => 'sg_body_title',
  92.                 'type'        => __( 'JKIT Image Box: Body: Title', 'jeg-elementor-kit' ),
  93.                 'editor_type' => 'LINE',
  94.             ),
  95.             array(
  96.                 'field'       => 'sg_body_description',
  97.                 'type'        => __( 'JKIT Image Box: Body: Description', 'jeg-elementor-kit' ),
  98.                 'editor_type' => 'LINE',
  99.             ),
  100.             array(
  101.                 'field'       => 'sg_button_label',
  102.                 'type'        => __( 'JKIT Image Box: Button: Label', 'jeg-elementor-kit' ),
  103.                 'editor_type' => 'LINE',
  104.             ),
  105.             array(
  106.                 'field'       => 'sg_button_link',
  107.                 'type'        => __( 'JKIT Image Box: Button: Link', 'jeg-elementor-kit' ),
  108.                 'editor_type' => 'LINE',
  109.             ),
  110.         ),
  111.     );
  112.  
  113.     /** JKIT - Button Widget */
  114.     $widgets['jkit_button'] = array(
  115.         'conditions' => array( 'widgetType' => 'jkit_button' ),
  116.         'fields'     => array(
  117.             array(
  118.                 'field'       => 'sg_content_label',
  119.                 'type'        => __( 'JKIT Button: Content: Label', 'jeg-elementor-kit' ),
  120.                 'editor_type' => 'LINE',
  121.             ),
  122.             array(
  123.                 'field'       => 'sg_content_link',
  124.                 'type'        => __( 'JKIT Button: Content: Link', 'jeg-elementor-kit' ),
  125.                 'editor_type' => 'LINE',
  126.             ),
  127.             array(
  128.                 'field'       => 'sg_content_class',
  129.                 'type'        => __( 'JKIT Button: Content: Class', 'jeg-elementor-kit' ),
  130.                 'editor_type' => 'LINE',
  131.             ),
  132.             array(
  133.                 'field'       => 'sg_button_label',
  134.                 'type'        => __( 'JKIT Image Box: Button: Label', 'jeg-elementor-kit' ),
  135.                 'editor_type' => 'LINE',
  136.             ),
  137.             array(
  138.                 'field'       => 'sg_content_id',
  139.                 'type'        => __( 'JKIT Image Box: Button: ID', 'jeg-elementor-kit' ),
  140.                 'editor_type' => 'LINE',
  141.             ),
  142.         ),
  143.     );
  144.  
  145.     /** JKIT - Animated Text */
  146.     $widgets['jkit_animated_text'] = array(
  147.         'conditions'        => array( 'widgetType' => 'jkit_animated_text' ),
  148.         'fields'            => array(
  149.             array(
  150.                 'field'       => 'sg_text_before',
  151.                 'type'        => __( 'JKIT Animated Text: Text: Before Text', 'jeg-elementor-kit' ),
  152.                 'editor_type' => 'LINE',
  153.             ),
  154.             array(
  155.                 'field'       => 'sg_text_animated',
  156.                 'type'        => __( 'JKIT Animated Text: Text: Animated Text', 'jeg-elementor-kit' ),
  157.                 'editor_type' => 'LINE',
  158.             ),
  159.             array(
  160.                 'field'       => 'sg_text_after',
  161.                 'type'        => __( 'JKIT Animated Text: Text: Rotating Text', 'jeg-elementor-kit' ),
  162.                 'editor_type' => 'LINE',
  163.             ),
  164.         ),
  165.         'integration-class' => 'WPML_JKIT_Animated_Text_Custom',
  166.     );
  167.  
  168.     /** JKIT - Pie Chart */
  169.     $widgets['jkit_pie_chart'] = array(
  170.         'conditions' => array( 'widgetType' => 'jkit_pie_chart' ),
  171.         'fields'     => array(
  172.             array(
  173.                 'field'       => 'sg_content_title',
  174.                 'type'        => __( 'JKIT Pie Chart: Content: Title', 'jeg-elementor-kit' ),
  175.                 'editor_type' => 'LINE',
  176.             ),
  177.             array(
  178.                 'field'       => 'sg_content_description',
  179.                 'type'        => __( 'JKIT Pie Chart: Content: Description', 'jeg-elementor-kit' ),
  180.                 'editor_type' => 'AREA',
  181.             ),
  182.         ),
  183.     );
  184.  
  185.     /** JKIT - Fun Fact */
  186.     $widgets['jkit_fun_fact'] = array(
  187.         'conditions' => array( 'widgetType' => 'jkit_fun_fact' ),
  188.         'fields'     => array(
  189.             array(
  190.                 'field'       => 'sg_content_number_prefix',
  191.                 'type'        => __( 'JKIT Fun Fact: Content: Number Prefix', 'jeg-elementor-kit' ),
  192.                 'editor_type' => 'LINE',
  193.             ),
  194.             array(
  195.                 'field'       => 'sg_content_number',
  196.                 'type'        => __( 'JKIT Fun Fact: Content: Number', 'jeg-elementor-kit' ),
  197.                 'editor_type' => 'LINE',
  198.             ),
  199.             array(
  200.                 'field'       => 'sg_content_number_suffix',
  201.                 'type'        => __( 'JKIT Fun Fact: Content: Number Suffix', 'jeg-elementor-kit' ),
  202.                 'editor_type' => 'LINE',
  203.             ),
  204.             array(
  205.                 'field'       => 'sg_content_title',
  206.                 'type'        => __( 'JKIT Fun Fact: Content: Title', 'jeg-elementor-kit' ),
  207.                 'editor_type' => 'LINE',
  208.             ),
  209.             array(
  210.                 'field'       => 'sg_content_super',
  211.                 'type'        => __( 'JKIT Fun Fact: Content: Super', 'jeg-elementor-kit' ),
  212.                 'editor_type' => 'LINE',
  213.             ),
  214.         ),
  215.     );
  216.  
  217.     return $widgets;
  218. }
  219. add_filter( 'wpml_elementor_widgets_to_translate', 'add_jkit_widgets_to_translate' );
  220.  
  221. /** Add a custom class for widget translation who have a Repeater Control */
  222. add_action(
  223.     'init',
  224.     function() {
  225.         /** class JKIT Accordion Translation */
  226.         class WPML_JKIT_Accordion_Custom extends WPML_Elementor_Module_With_Items {
  227.             /**
  228.              * @return string
  229.              */
  230.             public function get_items_field() {
  231.                 return 'sg_accordion_list';
  232.             }
  233.  
  234.             /**
  235.              * @return array
  236.              */
  237.             public function get_fields() {
  238.                 return array( 'sg_accordion_list_title', 'sg_accordion_list_content' );
  239.             }
  240.  
  241.             /**
  242.              * @param string $field
  243.              *
  244.              * @return string
  245.              */
  246.             protected function get_title( $field ) {
  247.                 switch ( $field ) {
  248.                     case 'sg_accordion_list_title':
  249.                         return esc_html__( 'JKIT Accordion: Accordion: Title', 'jeg-elementor-kit' );
  250.                     case 'sg_accordion_list_content':
  251.                         return esc_html__( 'JKIT Accordion: Accordion: Content Description', 'jeg-elementor-kit' );
  252.                     default:
  253.                         return '';
  254.                 }
  255.             }
  256.  
  257.             /**
  258.              * @param string $field
  259.              *
  260.              * @return string
  261.              */
  262.             protected function get_editor_type( $field ) {
  263.                 switch ( $field ) {
  264.                     case 'sg_accordion_list_title':
  265.                         return 'LINE';
  266.                     case 'sg_accordion_list_content':
  267.                         return 'VISUAL';
  268.                     default:
  269.                         return '';
  270.                 }
  271.             }
  272.         }
  273.  
  274.         /** class JKIT Testimonials Translation */
  275.         class WPML_JKIT_Testimonials_Custom extends WPML_Elementor_Module_With_Items {
  276.             /**
  277.              * @return string
  278.              */
  279.             public function get_items_field() {
  280.                 return 'sg_testimonials_list';
  281.             }
  282.  
  283.             /**
  284.              * @return array
  285.              */
  286.             public function get_fields() {
  287.                 return array( 'sg_testimonials_list_client_name', 'sg_testimonials_list_designation', 'sg_testimonials_list_review' );
  288.             }
  289.  
  290.             /**
  291.              * @param string $field
  292.              *
  293.              * @return string
  294.              */
  295.             protected function get_title( $field ) {
  296.                 switch ( $field ) {
  297.                     case 'sg_testimonials_list_client_name':
  298.                         return esc_html__( 'JKIT Testimonials: Testimonials: Client Name', 'jeg-elementor-kit' );
  299.                     case 'sg_testimonials_list_designation':
  300.                         return esc_html__( 'JKIT Testimonials: Testimonials: Designation', 'jeg-elementor-kit' );
  301.                     case 'sg_testimonials_list_review':
  302.                         return esc_html__( 'JKIT Testimonials: Testimonials: Review', 'jeg-elementor-kit' );
  303.                     default:
  304.                         return '';
  305.                 }
  306.             }
  307.  
  308.             /**
  309.              * @param string $field
  310.              *
  311.              * @return string
  312.              */
  313.             protected function get_editor_type( $field ) {
  314.                 switch ( $field ) {
  315.                     case 'sg_testimonials_list_client_name':
  316.                         return 'LINE';
  317.                     case 'sg_testimonials_list_designation':
  318.                         return 'LINE';
  319.                     case 'sg_testimonials_list_review':
  320.                         return 'LINE';
  321.                     default:
  322.                         return '';
  323.                 }
  324.             }
  325.         }
  326.  
  327.         /** class JKIT Animated Text Translation */
  328.         class WPML_JKIT_Animated_Text_Custom extends WPML_Elementor_Module_With_Items {
  329.             /**
  330.              * @return string
  331.              */
  332.             public function get_items_field() {
  333.                 return 'sg_text_rotating_list';
  334.             }
  335.  
  336.             /**
  337.              * @return array
  338.              */
  339.             public function get_fields() {
  340.                 return array( 'sg_text_rotating_list_text' );
  341.             }
  342.  
  343.             /**
  344.              * @param string $field
  345.              *
  346.              * @return string
  347.              */
  348.             protected function get_title( $field ) {
  349.                 switch ( $field ) {
  350.                     case 'sg_text_rotating_list_text':
  351.                         return esc_html__( 'JKIT Testimonials: Text: Rotating Text', 'jeg-elementor-kit' );
  352.                     default:
  353.                         return '';
  354.                 }
  355.             }
  356.  
  357.             /**
  358.              * @param string $field
  359.              *
  360.              * @return string
  361.              */
  362.             protected function get_editor_type( $field ) {
  363.                 switch ( $field ) {
  364.                     case 'sg_text_rotating_list_text':
  365.                         return 'LINE';
  366.                     default:
  367.                         return '';
  368.                 }
  369.             }
  370.         }
  371.     }
  372. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement