Advertisement
bongzilla

Untitled

Apr 12th, 2021
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.33 KB | None | 0 0
  1. <?php
  2. //Хлебные крошки
  3.  
  4. add_filter( 'wpseo_breadcrumb_links', 'wpseo_breadcrumb_add_woo_shop_link' );
  5.  
  6. function wpseo_breadcrumb_add_woo_shop_link( $links ) {
  7. global $post;
  8. global $wp;
  9. $current_url = home_url(add_query_arg(array(), $wp->request));
  10.  
  11. if ( is_woocommerce() ) {
  12. $breadcrumb[] = array(
  13. 'url' => get_permalink( woocommerce_get_page_id( 'shop' ) ),
  14. 'text' => 'Услуги',
  15. );
  16.  
  17. if ( strpos($current_url, "shop") !== false ) {
  18. array_pop( $links );
  19. }
  20.  
  21. array_splice( $links, 1, -2, $breadcrumb );
  22. }
  23.  
  24. return $links;
  25. }
  26.  
  27. add_filter( 'wpseo_breadcrumb_links', 'yoast_seo_breadcrumb_append_link' );
  28. function yoast_seo_breadcrumb_append_link( $links ) {
  29. global $post;
  30. global $wp;
  31.  
  32. if ( is_single ( 123456 ) ) {
  33. $breadcrumb[] = array(
  34. 'url' => site_url( '/blog/' ),
  35. 'text' => 'Блог',
  36. );
  37. array_splice( $links, 1, -2, $breadcrumb );
  38. }
  39.  
  40. return $links;
  41. }
  42.  
  43. // внешняя переменная чтобы понять сколько ссылок уже в $links
  44. // и понять на каком уровне вложенности мы
  45. $outside = 0;
  46.  
  47. add_filter('wpseo_breadcrumb_single_link' ,'add_single_link', 10 ,2);
  48.  
  49. function add_single_link($link_output, $link ){
  50. global $wp;
  51. // не забудем подтянуть внешнюю переменную
  52. global $outside;
  53. $output = array();
  54. $current_url = home_url(add_query_arg(array(), $wp->request));
  55. // a bits for debug
  56. // if(is_user_logged_in()) {
  57. // echo "<pre>";
  58. // print_r($var);
  59. // echo "</pre>";
  60. // }
  61.  
  62. // с каждым проходом по $link увеличиваем на 1
  63. $outside += 1;
  64.  
  65. // если ссылка в $link["url] совпадает с текущей страницей
  66. // читай - здесь мы строим крошки первых страниц
  67. // Главная - Услуги - Категория
  68. if($link["url"] === $current_url . "/") {
  69. // и если это НЕ страница товара
  70. if ( !is_singular('product') ) {
  71. // тогда пушим в массив крошку БЕЗ ссылки
  72. // здесь строятся последнии крошки без ссылки в категориях!
  73. array_push($output, "<br /><span class=\"current-page-breadcrumb\">".$link["text"]."</span>");
  74. }
  75. // если ссылка в $link["url"] НЕ совпадает с текущей страницей
  76. } else {
  77. // и если это НЕ страница товара
  78. if( !is_singular("product")) {
  79. // тогда пушим в массив крошку со ссылкой
  80. // тут строятся первые ссылки на страницах НЕ товара - Главная - Услуги - Категория
  81. array_push($output, "<span><a href=". $link["url"] .">" . $link["text"] . "</a></span>");
  82. // если это страница товара
  83. } else {
  84. // тогда если счётчик меньше или равно 2
  85. // тут мы строим ссылки Главная - Услуги - Категория
  86. if($outside <= 2) {
  87. // пушим со ссылкой
  88. array_push($output, "<span><a href=". $link["url"] .">" . $link["text"] . "</a></span>");
  89. } else {
  90. // если счётчик больше 2 - без ссылки
  91. array_push($output, "<br /><span class=\"current-page-breadcrumb\">".$link["text"]."</span>");
  92. }
  93. }
  94. }
  95.  
  96. $html_output = "";
  97.  
  98. foreach ($output as $idx=>$crumb) {
  99. $html_output .= $crumb;
  100. }
  101.  
  102. return $html_output;
  103. }
  104.  
  105. add_filter( 'woocommerce_order_item_name', 'add_single_excerpt_to_order_item', 10, 3 );
  106. function add_single_excerpt_to_order_item( $item_name, $item, $is_visible ){
  107. $product_id = $item->get_product_id(); // Get the product Id
  108. $link = get_permalink( $product_id );
  109. $product = wc_get_product($product_id);
  110. $price = $product->get_price();
  111. $category = get_category($product_id);
  112. $term_list = wp_get_post_terms($product_id, 'product_cat', array('fields' => 'names'));
  113. $category_name = str_replace(" ", "_", $term_list[0]);
  114.  
  115. return '<a href="'. $link .'" rel="nofollow" data-product-id='.$product_id.' data-product-price='. $price .' data-product-category='. $category_name .'>'. $item["name"] .'</a>';
  116. }
  117.  
  118. ?>
  119.  
  120.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement