fauzanjeg

JKIT || Add JKIT Widgets to WPML Translate

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