summaryrefslogtreecommitdiff
path: root/angebote
diff options
context:
space:
mode:
Diffstat (limited to 'angebote')
-rw-r--r--angebote/angebote.php2
-rw-r--r--angebote/inc/functions.php82
-rw-r--r--angebote/inc/template.php107
3 files changed, 189 insertions, 2 deletions
diff --git a/angebote/angebote.php b/angebote/angebote.php
index 5409b55..06998f3 100644
--- a/angebote/angebote.php
+++ b/angebote/angebote.php
@@ -7,8 +7,6 @@ if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
-require_once __DIR__ . '/inc/functions.php';
-
get_header();
$container = get_theme_mod( 'understrap_container_type' );
diff --git a/angebote/inc/functions.php b/angebote/inc/functions.php
index de9a03d..42dab03 100644
--- a/angebote/inc/functions.php
+++ b/angebote/inc/functions.php
@@ -41,3 +41,85 @@ function create_offer_link() {
return "https://angebote.fuselkoenig.de/wp/whisky?page=" . $page . "&_sort=" . $sort . "&_order=" . $order;
}
+
+function create_offer_post_type() {
+ register_post_type(
+ 'angebote',
+ array(
+ 'labels' => array(
+ 'name' => __('Angebote'),
+ 'singular_name' => __('Angebot')
+ ),
+ 'public' => true,
+ 'has_archive' => true,
+ 'hierarchical' => false,
+ 'taxonomies' => array( 'type' ),
+ 'supports' => array(
+ 'title',
+ 'editor',
+ 'thumbnail',
+ 'comments'
+ ),
+ 'rewrite' => array(
+ #'slug' => 'aangebote/%custom-taxonomy-name%',
+ 'slug' => 'angebote/%type%',
+ 'with_front' => true,
+ )
+ )
+ );
+ // create a new taxonomy
+ register_taxonomy(
+ 'type',
+ 'angebote',
+ array(
+ 'label' => __( 'Type' ),
+ 'hierarchical' => false,
+ 'rewrite' => array(
+ 'slug' => 'angebote',
+ 'with_front' => true
+ )
+ )
+ );
+}
+
+function generate_taxonomy_rewrite_rules( $wp_rewrite ) {
+ $rules = array();
+ $post_types = get_post_types( array( 'name' => 'angebote', 'public' => true, '_builtin' => false ), 'objects' );
+ $taxonomies = get_taxonomies( array( 'name' => 'type', 'public' => true, '_builtin' => false ), 'objects' );
+
+ foreach ( $post_types as $post_type ) {
+ $post_type_name = $post_type->name; // 'developer'
+ $post_type_slug = $post_type->rewrite['slug']; // 'developers'
+
+ foreach ( $taxonomies as $taxonomy ) {
+ if ( $taxonomy->object_type[0] == $post_type_name ) {
+ $terms = get_categories( array( 'type' => $post_type_name, 'taxonomy' => $taxonomy->name, 'hide_empty' => 0 ) );
+ foreach ( $terms as $term ) {
+ $rules[$post_type_slug . '/' . $term->slug . '/?$'] = 'index.php?' . $term->taxonomy . '=' . $term->slug;
+ }
+ }
+ }
+ }
+ $wp_rewrite->rules = $rules + $wp_rewrite->rules;
+}
+
+function post_link_includes_taxonomy( $post_link, $id = 0 ){
+ $post = get_post($id);
+ if ( is_object( $post ) ){
+ $terms = wp_get_object_terms( $post->ID, 'type' );
+ file_put_contents("/tmp/wp.debug", json_encode($terms));
+ if( $terms ){
+ # file_put_contents("/tmp/wp.debug", str_replace( 'angebote/' , 'angebote/' . $terms[0]->slug , $post_link ));
+ # return $post_link;
+ # return str_replace( '/angebote/' , '/angebote/' . $terms[0]->slug . '/', $post_link );
+ return str_replace( '%type%' , $terms[0]->slug, $post_link );
+ } else {
+ return str_replace( '%type%' , '', $post_link );
+ }
+ }
+ return $post_link;
+}
+
+add_action('init', 'create_offer_post_type');
+add_action('generate_rewrite_rules', 'generate_taxonomy_rewrite_rules');
+add_filter( 'post_type_link', 'post_link_includes_taxonomy', 1, 3 );
diff --git a/angebote/inc/template.php b/angebote/inc/template.php
new file mode 100644
index 0000000..d0bbcc3
--- /dev/null
+++ b/angebote/inc/template.php
@@ -0,0 +1,107 @@
+<?php
+
+if ( ! defined( 'ABSPATH' ) ) {
+ exit; // Exit if accessed directly.
+}
+
+function render_offer_template( $atts ) {
+ global $post;
+ $categories = get_the_terms( $post, 'type' );
+ $spirit_type = 'Verschiedenes';
+
+ if ( isset($categories[0]) ) {
+ $spirit_type = $categories[0]->name;
+ }
+
+ $include_post_link = false;
+ if ( is_archive() || is_search() ) {
+ $include_post_link = true;
+ }
+ if ( is_search() ) {
+ $css_border_left = " card-border-left";
+ } else {
+ $css_border_left = "";
+ }
+
+ $offer = shortcode_atts( array(
+ 'spirit_type' => $spirit_type,
+ 'shop' => '',
+ 'procent' => '',
+ 'img_url' => '',
+ 'name' => '',
+ 'discounted_price' => '',
+ 'original_price' => '',
+ 'shipping_costs' => 'Versand ist nie kostenlos',
+ 'abv' => '',
+ 'volume' => '',
+ 'base_price' => '',
+ 'url' => '',
+ 'created_at' => '',
+ 'include_post_link' => $include_post_link,
+ ), $atts
+ );
+?>
+ <div class="card <?php echo $css_border_left; ?>">
+ <div class="row ">
+ <div class="col-md-4">
+ <div class="card-header-dp-none">
+ <p><strong>
+ <span style="visibility: hidden;">
+ <?php echo $offer['spirit_type']; ?><span class="float-right"><?php echo $offer['shop']; ?></span>
+ </span>
+ </strong></p>
+ </div>
+ <div class="card-img-overlay card-img-overlay-badge" >
+ <p class="card-text float-right rounded off-badge" ><?php echo $offer['procent']; ?> %</p>
+ </div>
+ <img src="<?php echo $offer['img_url']; ?>" class="w-100 card-img img-fluid" >
+ </div>
+ <div class="col-md-8 px-10">
+ <div class="card-header">
+ <p><strong>
+ <?php echo $offer['spirit_type']; ?><span class="float-right"><?php echo $offer['shop']; ?></span>
+ </strong></p>
+ </div>
+ <div class="card-block card-body px-3">
+<?php
+ if ( $offer['include_post_link'] ) {
+?>
+ <h3 class="card-title"><a class="offer-title" href="<?php echo get_post_permalink( $post ); ?>" title="<?php echo $offer['name']; ?>"><?php echo $offer['name']; ?> <i class="material-icons icon-small" sstyle="font-size: 50%;">
+launch
+</i></a></h3>
+<?php
+ } else {
+?>
+ <h3 class="card-title"><?php echo $offer['name']; ?></h3>
+<?php
+ }
+?>
+ <div class="row">
+ <p class="card-text col-md-6">
+ Preis: <?php echo $offer['discounted_price']; ?> €
+ <br>
+ Alter Preis: <?php echo $offer['original_price']; ?> €
+ <br>
+ Versand: <?php echo $offer['shipping_costs']; ?> €
+ </p>
+ <p class="card-text col-md-6">
+ Alkohol: <?php echo $offer['abv']; ?> %
+ <br>
+ Volumen: <?php echo $offer['volume']; ?> Liter
+ <br>
+ <?php echo $offer['base_price']; ?> € / Liter
+ </p>
+ </div>
+ </div>
+ <div class="card-footer">
+ <a href="<?php echo $offer['url']; ?>" class="btn btn-primary">Zum Shop</a>
+ <!--p class="float-right">Preis vom <?php echo $offer['created_at']; ?></p-->
+ </div>
+ </div>
+
+ </div>
+ </div>
+<?php
+}
+
+add_shortcode('angebot', 'render_offer_template');