vc-services.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. /*------------------------------------------------------*/
  3. /* taskereasy Testimonials
  4. /*------------------------------------------------------*/
  5. vc_map(array(
  6. "name" => esc_html__("Single Service", 'taskereasy'),
  7. "base" => "taskereasy_services",
  8. 'icon' => get_template_directory_uri() . '/assets/images/favicon-icon/shortcode-icon.png',
  9. "class" => "",
  10. "description" => esc_html__("Add taskereasy Services", 'taskereasy'),
  11. "category" => esc_html__('Taskereasy Shortcodes', 'taskereasy'),
  12. "params" => array(
  13. array(
  14. "type" => "attach_image",
  15. "heading" => esc_html__("Image", 'taskereasy'),
  16. "param_name" => "service_img",
  17. ),
  18. array(
  19. "type" => "textfield",
  20. "heading" => esc_html__("Title", 'taskereasy'),
  21. "param_name" => "service_title",
  22. ),
  23. array(
  24. "type" => "textarea_safe",
  25. "heading" => esc_html__("Description", 'taskereasy'),
  26. "param_name" => "service_description",
  27. ),
  28. array(
  29. 'type' => 'vc_link',
  30. 'heading' => esc_html__( 'Link', 'taskereasy' ),
  31. 'param_name' => 'btn_link',
  32. ),
  33. array(
  34. 'type' => 'dropdown',
  35. 'heading' => esc_html__( 'Alignment', 'taskereasy' ),
  36. 'param_name' => 'service_align',
  37. 'value' => array('Left' => 'align-left', 'Right' => 'align-right' ),
  38. 'std' => 'Left',
  39. ),
  40. /***************************design option tab*******************/
  41. array(
  42. 'type' => 'css_editor',
  43. 'heading' => esc_html__( 'CSS', 'taskereasy' ),
  44. 'param_name' => 'custom_design',
  45. 'group' => esc_html__( 'Design options', 'taskereasy' ),
  46. )
  47. )
  48. ));
  49. add_shortcode( 'taskereasy_services', function($atts, $content = null) {
  50. extract(shortcode_atts(array(
  51. 'service_img' => '',
  52. 'service_title' => '',
  53. 'service_description' => '',
  54. 'btn_link' => '',
  55. 'service_align' => 'left',
  56. 'custom_design' => '',
  57. ), $atts));
  58. $custom_design = vc_shortcode_custom_css_class( $custom_design, ' ' );
  59. $output = '';
  60. $serviceimg = html_entity_decode(vc_value_from_safe($service_img, true));
  61. $image = html_entity_decode(vc_value_from_safe($serviceimg, true));
  62. $img_size = html_entity_decode(vc_value_from_safe($image_size, true));
  63. $image_url = wp_get_attachment_image_src( $image, $img_size );
  64. $title_text = html_entity_decode(vc_value_from_safe($service_title, true));
  65. $service_align = html_entity_decode(vc_value_from_safe($service_align, true));
  66. $btnlink = vc_build_link( $btn_link );
  67. $btn_link = $btnlink['url'];
  68. $btn_title = $btnlink['title'];
  69. $btn_target = $btnlink['target'];
  70. $output .=
  71. '<section class=" '.$custom_design.'">
  72. <div class="services-container '.$service_align.'">
  73. <div class="services-image">
  74. <img src="'.$image_url[0].'" alt="'.$title_text.'">
  75. </div>
  76. <div class="services-info">
  77. <h2><a href="#">'.$title_text.'</a></h2>
  78. <p>'.$service_description.'</p>
  79. <a href="'.$btn_link.'" target="'.$btn_target.'" class="btn">'.$btn_title.' <i class="fa fa-angle-right"></i></a>
  80. </div>
  81. </div>
  82. </section>';
  83. return $output;
  84. });