vc-single-image.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. if ( ! defined( 'ABSPATH' ) ) {
  3. die( '-1' );
  4. }
  5. if ( 'vc_edit_form' === vc_post_param( 'action' ) ) {
  6. add_filter( 'vc_edit_form_fields_attributes_vc_single_image', 'vc_single_image_convert_old_link_to_new' );
  7. }
  8. /**
  9. * Backward compatibility
  10. *
  11. * @param $atts
  12. * @return mixed
  13. * @since 4.6
  14. */
  15. function vc_single_image_convert_old_link_to_new( $atts ) {
  16. if ( empty( $atts['onclick'] ) && isset( $atts['img_link_large'] ) && 'yes' === $atts['img_link_large'] ) {
  17. $atts['onclick'] = 'img_link_large';
  18. unset( $atts['img_link_large'] );
  19. } elseif ( empty( $atts['onclick'] ) && ( ! isset( $atts['img_link_large'] ) || 'yes' !== $atts['img_link_large'] ) ) {
  20. unset( $atts['img_link_large'] );
  21. }
  22. if ( empty( $atts['onclick'] ) && ! empty( $atts['link'] ) ) {
  23. $atts['onclick'] = 'custom_link';
  24. }
  25. return $atts;
  26. }
  27. add_action( 'wp_ajax_wpb_single_image_src', 'vc_single_image_src' );
  28. function vc_single_image_src() {
  29. vc_user_access()->checkAdminNonce()->validateDie()->wpAny( 'edit_posts', 'edit_pages' )->validateDie();
  30. $image_id = (int) vc_post_param( 'content' );
  31. $params = vc_post_param( 'params' );
  32. $post_id = (int) vc_post_param( 'post_id' );
  33. $img_size = vc_post_param( 'size' );
  34. $img = '';
  35. if ( ! empty( $params['source'] ) ) {
  36. $source = $params['source'];
  37. } else {
  38. $source = 'media_library';
  39. }
  40. switch ( $source ) {
  41. case 'media_library':
  42. case 'featured_image':
  43. if ( 'featured_image' === $source ) {
  44. if ( $post_id && has_post_thumbnail( $post_id ) ) {
  45. $img_id = get_post_thumbnail_id( $post_id );
  46. } else {
  47. $img_id = 0;
  48. }
  49. } else {
  50. $img_id = preg_replace( '/[^\d]/', '', $image_id );
  51. }
  52. if ( ! $img_size ) {
  53. $img_size = 'thumbnail';
  54. }
  55. if ( $img_id ) {
  56. $img = wp_get_attachment_image_src( $img_id, $img_size );
  57. if ( $img ) {
  58. $img = $img[0];
  59. }
  60. }
  61. break;
  62. case 'external_link':
  63. if ( ! empty( $params['custom_src'] ) ) {
  64. $img = $params['custom_src'];
  65. }
  66. break;
  67. }
  68. echo esc_url( $img );
  69. die();
  70. }